当前位置: 首页 > article >正文

C语言—什么是数组名

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
int main()
{
	int arr[]={1,2,3,4};
	printf("%p\n",arr);
	printf("%p\n",&arr);
	printf("%p\n",*arr);
	return 0;
}

 结论:数组名是数组首元素地址(下标为0的元素是首元素)

例外:

1、sizeof(数组名),该数组数组名表示整个数组,sizeof计算数组大小,单位字节

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
int main()
{
	int arr[10]={0};
	printf("%d\n",sizeof(arr));
	return 0;
}

 2、&(数组名),数组名代表整个数组,取出的是整个数组的地址

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
int main()
{
	int arr[]={1,2,3,4};
	printf("%p\n",arr);
	printf("%p\n",&arr[0]);
	printf("%p\n",&arr);
	return 0;
}

 输出的结果是一样的,但是&(arr)的地址代表的是从第一个数组元素开始,分别+1发现输出结果不通,因为&arr+1输出的是数组的地址,而其他输出的是数组中首元素+1的元素地址(第二个元素地址)

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>
int main()
{
	int arr[]={1,2,3,4};
	printf("%p\n",arr);
	printf("%p\n",arr+1);
	printf("\n");
	printf("%p\n",&arr[0]);
	printf("%p\n",&arr[0]+1);
	printf("\n");
	printf("%p\n",&arr);
	printf("%p\n",&arr+1);
	return 0;
}

 


http://www.kler.cn/news/148269.html

相关文章:

  • 5种主流API网关技术选型,yyds!
  • Python基础语法之学习print()函数
  • JAVA 使用stream流将List中的对象某一属性创建新的List
  • ubuntu中root和普通用户切换方法
  • LeetCode Hot100 20.有效的括号
  • Android Frameworks 开发总结之七
  • UniApp 中的 u-input 属性讲解
  • 大数据-之LibrA数据库系统告警处理(ALM-37006 Coordinator进程异常)
  • python tkinter 使用(八)
  • C++之STL库:string类(用法列举和总结)
  • springboot项目修改项目名称
  • JVM的知识点
  • python:由深浅拷贝谈到变量值的核心区别
  • 【SpringCloud】设计原则之单一职责与服务拆分
  • 如何在Ubuntu系统上安装Node.js
  • HTTP 响应头信息
  • 简易键值对文本解析
  • 面试:Kafka相关问题
  • 力扣104. 二叉树的最大深度
  • 大数据存储技术期中考点梳理
  • 更改QTableWidget的branch展开符样式为“+“加号字符
  • Typora+PicGo+Minio搭建博客图床
  • 每日OJ题_算法_双指针⑧力扣18. 四数之和
  • 还在担心发抖音没素材跟文案?[腾讯云HAI] AIGC带你蹭热度“今年你失去了什么?”
  • Eigen学习(持续更新)
  • freerots启动过程分析(qemu仿真RISC-V架构为例)
  • 【计算机网络学习之路】序列化,反序列化和初识协议
  • ChromeDriver最新版本下载与安装方法
  • 【面试HOT200】滑动窗口篇
  • HNU练习七 字符串编程题7. 机器人游戏