c语言问题:阅读下列程序,则执行后的结果为 #include"stdio.h" main() { int c[][4]={1,2,3,4,5,6

阅读下列程序,则执行后的结果为 #include"stdio.h" main() { int
c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56};
printf("%x,%x\n",c[2][2],*(*(c+1)+1));}
A.3e,6
B.62,5
C.56,5
D.3E,6
答案是A 想知道为什么

就是输出 c[2][2] c[1][1] 十六进制形式

c[][4]={1,2,3,4,5,6,7,34,213,56,62,3,23,12,34,56}

4个数为一行,也就是 几行4列的二维数组 总共16个数 就是 4行4列

数组的下标从0开始的

所以 C[1][1] 表示的就是第二行第二列的数 也就是6
所以 c[2][2]也就是 62 转化成十六进制就是 3e

由于%x是小写的,所以输出的是小写的e

所以A
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-27
%x 代表输出16进制数,c[2][2]是是62,所以转化完之后是3e,二维数组数组名代表数组首地址,(c+1)指向第一行(从0行开始),(*(c+1)+1)指向第一行第一个数(从0开始计数),所以是6.
第2个回答  2013-05-27
对于c语言来说,数组不一定要有行的值,一定要有列的值,这个数组一定要有16个数,除以四,得4,然后可以得出才C[2][2]为62,62的十六进制是3e,所以就选A,但是不知道第二个
相似回答