下面程序输出的结果是()
#include <stdio.h>
void main()
{
char mm[4][3] = { "12", "34", "56", "78" }, *pn[4];
int k, s=0;
for(k=0; k<4; k++)
pn[k] = mm[k];
for(k=1; k<4; k+=2)
s=s*10 + pn[k][1] - '0';
printf("%s\n", s);
}
A、48 B、26 C 、3478 D、567
答案:A
解析:一开始可能是我对于题目理解错了,后来我才发现,题目有个陷阱,其实对于二维数组初始化之后的结果为
1 2 [ ]
3 4 [ ]
5 6 [ ]
7 8 [ ]
这样之后再将再将指针数组指向该二维数组,然后计算
第一次pn[1][1] = 4; s=4;
第二次pn[3][1] =8; s=10*4 + 8=48;
循环两次结束,最终结果为48