以下程序运行后的输出结果是
void main(void)
{
char ch[]="ABCD";
char x[3][3];
int i;
memset(x,0,sizeof(x));
for(i=0;i<2;i++)
{
strncpy(x[i],ch,5);
}
for(i=0;i<2;i++)
{
printf("%s",&x[i][i]);
}
return;
}
A ABCABCABCBCABC
B ABCDBCD
C ABCBC
D ABCABCDBCD
正确答案: | D |
答案解析: | void main(void) for(i=0;i<2;i++) //此时数组变为x[3][3] = "ABCABCD\\0\\0",连续存储 for(i=0;i<2;i++) |
printf("x[%d][%d]:%s\n",i,i,&x[i][i]);
printf("x[%d]:%s\n", i,&x[i]);
printf("addr x[%d]:%x\n",i, &x[i]);
x[0][0]:ABCABCD
x[0]:ABCABCD
addr x[0]:2efe20
x[1][1]:BCD
x[1]:ABCD
addr x[1]:2efe23
x[2][2]:
x[2]:D
addr x[2]:2efe26