#define _CRT_SECURE_NO_WARNINGS 1 // 将数组作为参数传给函数 #include <stdio.h> //数组名是什么? //数组名是数组首元素的地址 //但是又两个例外: //1.sizeof(arr) - 数组名表示整个数组 - 计算的是整个数组的大小,单位字节 //2.&arr - 数组名表示整个数组 - 取出的是整个数组的地址 int main() { int arr[10] = { 0 }; printf("%p\n", &arr); //000000E3728FF6F8,这个是整个数组的地址就是首元素的地址,虽然结果一样,意义不同 printf("%p\n", arr); //000000E3728FF6F8 printf("%p\n", &arr[0]); //000000E3728FF6F8 printf("%p\n", &arr + 1); //00000081402FF7F0 ,,这个加的是40,整 个地址的首地址 printf("%p\n", arr+1); //00000081402FF7CC 加4 printf("%p\n", &arr[0] + 1); //00000081402FF7CC ,加4 int sz = sizeof(arr) / sizeof(arr[0]); //整个数组的个数 printf("%d\n", sz); //结果:10 ,数组的个数 printf("%p\n", &arr[0]); //000000A21DBEF578 printf("%p\n", &arr); //000000A21DBEF578 return 0; }标签:混淆,arr,int,地址,数组名,数组,printf,指针 From: https://www.cnblogs.com/kingxyg/p/16827263.html