一个跟指针有关的问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 00:08:11
1.请问"注"处语句有什么用?
2.请问改变"注"处的数字“4”,如改成1,2,3,5,6,7,8……为什么(0)、(1)、(2)、(3)处的结果每次都不同?
#include<stdio.h>
int main (){
int w[3][4]={{0,1,18,18},{2,4,18,18},{5,8,18,18}};
int a[]={99,2,4};

int (*p)[4]=w;//注
int *q;
printf("%d\n",*(w[1]+1));
printf("%d\n",*w[1]);
printf("%d\n",*(*(p+1)+1));//(0)
printf("%d\n",p );
printf("%d\n",*(p+1) );//(1)
printf("%d\n",p+1 );//(2)
p++;
printf("%d\n",p );//(3)
q=a;
printf("%d %d",*w[1],(*(q+1)));
}

int (*p)[4]是定义了一个指针变量p他是指向包含4个整型元素的一维数组
int (*p)[4]=w 就是让p指向w数组的0行首地址
第2个问题的话 把4改成其他数字的话 用VC会报错

int (*p)[4]=w;//声明一个指针数组p,可以容纳四个地址,并将指向地址初始化为w,今后对p的操作如果对w操作。