楞里格楞
2015-10-15 15:12
1 include <stdio.h> 2 int main() 3 { 4 int a=3; 5 int b=2; 6 int array[3]; 7 array[0]=1; 8 array[1]=10; 9 array[2]=100; 10 int *p=&a; 11 int i; 12 for(i=0;i<6;i++){ 13 printf("*p=%d\n",*p); 14 p++; 15 } 16 printf("-------------------------------------\n"); 17 p=&a; 18 for(i=0;i<6;i++){ 19 printf("p[%d]=%d\n",i,p[i]); 20 } 21 } 22 =====以下为输出====== *p=3 *p=1 *p=2 *p=-707193848 *p=32765 *p=1 ------------------------------------- p[0]=3 p[1]=1 p[2]=2 p[3]=-707193860 p[4]=32765 p[5]=1 -------------------
INT类型的内存地址和数组内存地址不连续,而是差了16位,把int类型最后一个值的地址前加16再输出,会显示数组的值
你的输出是对的,我的和你的一样,可能是你的代码和视频的代码不同
Linux C语言指针与内存
116475 学习 · 250 问题
相似问题