数组名是什么

  • Post author:
  • Post category:其他


1.数组名是数组首元素的地址

但是有2个例外

1.sizeof(数组名)-数组名表示整个数组-计算的是整个数组的大小,单位是字节

2.&数组名-数组名表示整个数组-取出的是整个数组的地址

#include<stdio.h>
int main()
{
	int arr[] = { 0,1,2,3,4,5,6,7,8,9 };
 
    printf("%p\n", &arr);//1 - &arr取出的是数组的地址
    printf("%p\n", &arr+1);
	printf("%p\n", arr);//2
    printf("%p\n", arr+1);

	//printf("%p\n", &arr[0]);//3

	//int sz = sizeof(arr);
	//printf("%d\n", sz);//40
	//printf("%p\n", &arr[0]);//%p - 输出的是地址-十六进制
	//printf("%p\n", arr);//数组名是数组首元素的地址
    //这两个输出的地址一样

	return 0;
}

#include<stdio.h>
int main()
{
	int arr[10] = { 0 };
	int* p1 = arr;
	int(*p2)[10] = &arr;//数组指针
	printf("%p\n", arr);
	printf("%p\n", &arr);
	printf("%p\n", p1);
	printf("%p\n", p1+1);

	printf("%p\n", p2);
	printf("%p\n", p2+1);
    
   

	return 0;
}



版权声明:本文为m0_69576880原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。