int a[][3]={1,2,3,4,5,6};printf(""%d"",a[1][1]);

int a[][3]={1,2,3,4,5,6};printf(""%d"",a[1][1]);
多少?

把b的定义改为,int (*b)[3]就可以了
定义成这样子,说明b是一个指向一个长度为3的一维数组,也就是书上所说的行指针。意思是,b+1,就指向了a[1],一下子跳过了a[0](一共六个字节),而不是指向a[0][1];
你本来把b定义成int *b;则这个是列指针,即一次只移动一个int
的长度(两个字节)。所以此时的b+1,就指向了a[0][1];
温馨提示:内容为网友见解,仅供参考
第1个回答  2018-09-06
C语言规定else总和离它最近的if语句配对。故第一个else与第一个if,第二个与第二个if。
第一个(a>b>c),a>b is true.故为1,1>c is false .为0,所以执行else后面的语句。c-1>d为真,故为1,1==1,执行printf(),结果为3
第2个回答  2018-06-26
5
int a[][3]这是定义了一个二维数组,每列三个元素,后面的{1,2,3,4,5,6}依次分配,故数组为:
1 2 3
4 5 6
a[1][1]的值就是5.本回答被提问者采纳
相似回答