关于C语言中指针引用二维数组一些问题
假设定义一个二维数组intarr[3][3]={1,2,3,4,5,6,7,8,9};那么printf("\n%p",arr+1);printf("\n%p",*arr+...
假设定义一个二维数组 int arr[3][3] = {1,2,3,4,5,6,7,8,9};
那么
printf("\n%p",arr+1);
printf("\n%p",*arr+1);
printf("\n%p",&arr+1);
下面是打印结果
010BFE0C
010BFE03
010BFE24
在数组中数组名本来不就是数组的首地址嘛*arr+1(如果说*arr是指针的,那么这个指针从来没有定义过啊)取出来的为什么不是数组的内容而还是地址呢,还有这里的arr+1,&arr+1原理上的区别在哪里。 展开
那么
printf("\n%p",arr+1);
printf("\n%p",*arr+1);
printf("\n%p",&arr+1);
下面是打印结果
010BFE0C
010BFE03
010BFE24
在数组中数组名本来不就是数组的首地址嘛*arr+1(如果说*arr是指针的,那么这个指针从来没有定义过啊)取出来的为什么不是数组的内容而还是地址呢,还有这里的arr+1,&arr+1原理上的区别在哪里。 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询