规律:一维数组在内存中是连续存放的,且随着数组下标的变化,地址由低到高变化
int main() { int arr[10] = { 0 }; int i = 0; arr; //arr是数组名,数组名是首元素的地址, for (i = 0; i < 10; i++) //%p用来打印取地址符,且是16进制 { //16进制顺序 0-9 A B C D E F printf("%p\n", &arr[i]); //打印结果为000000EEC3CFC68 前面为随机值,后面的每次+4(字节为4) // 000000EEC3CFC6C } // 000000EEC3CFC70 // 000000EEC3CFC74 return 0; //.... } // 000000EEC3CFC8C
//进阶版 int main() { int arr[10] = { 0 }; int i = 0; arr; for (i = 0; i < 10; i++) { printf("&arr[%d]=%p\n",i, &arr[i]);//打印结果为&arr[0]=0000001A4F31FBC8 } // &arr[1]=0000001A4F31FBCC return 0; //... } // &arr[9]=0000001A4F31FBEC //因为数组连续,且每个相差4个字节

