数组是我的在学习C语言中不可避免的一个章节,并且对代码有着不可获取的作用,那么数组名到底有什么含义呢?现在我就来向你浅浅的说明下把。
一、数组名的含义
数组名指首元素的地址
#include<stdio.h>
int main()
{
int arr[] = { 1,2,3 };
printf("%d", (*arr));
return 0;
}
由上述代码可见,数组名字经过解引用打印,显示了数组第一个元素。
二、放在不同情况下数组名不同含义
//以下两条语句,大家知道数组名都表示什么意思吗?
sizeof(arr);
&arr;
这两条语句,是我们最常见数组名的例外,一般我们说数组名就是首元素的地址,但是在这两种情况除外,sizeof(arr)表示计算整个数组的大小;&arr表示取出整个数组的地址。
int main()
{
int arr[] = { 1,2,3 };
printf("%d\n", sizeof(arr));
printf("----------------------\n");
printf("%p\n", &arr+1);
printf("%p\n", &arr );
return 0;
}
你会发现他们这种情况下并没有表示首元素地址。
三、示例
int main()
{
//大家可以先判断一下结果,再看答案
//下图有解析
char arr[] = { 'a','b','c','d','e','f' };
printf("%d\n", sizeof(arr + 0));
printf("%d\n", sizeof(*arr));
printf("%d\n", sizeof(arr[1]));
printf("%d\n", sizeof(&arr));
printf("%d\n", sizeof(&arr + 1));
printf("%d\n", sizeof(&arr[0] + 1));
return 0;
}
以上就是数组名的含义,希望可以对大家有所帮助。