i=0时,strcpy(x[0],ch) x[0]="abc"
i=1时,strcpy(x[1],ch) x[1]="abc"
i=2时,strcpy(x[2],ch) x[2]="abc"
//显示部分
i=0,&x[0][0]指向abc的首地址,printf显示的是abc
i=1,&x[1][1]指向b所在地址,printf显示的是bc
i=2,&x[2][2]指向c所在的地址,printf显示的是c
最终结果是:abcbcc
因为打印的时候是%s所以字符串复制到二维数组中是abc,abc,abc
第一次打印0,0 也就是abc
第二次1,1 也就是bc
第三次 c
所以abcbcc
strcpy之后,x[0],x[1],x[2]都是abc,输出时,x[0]从x[0][0]开始输出,也就是abc,x[1]从x[1][1],也就是bc,同理x[2]是c
最终结果就是abcbcc
x[0] abc
x[1] abc
x[2] abc
strcpy(x[i],ch)是把字符串ch的赋给 x[i]
表头 | 表头 | 表头 | 表头 |
---|---|---|---|
a | b | c | 单元格 |
a | b | c | 单元格 |
a | b | c | 单元格 |
打印字符串是把指定字符之后的字符都打印出来
x[0][0]为a,打印abc
x[1][1]为b,打印bc
x[2][2]为c,打印c
应该打印abc+bc+c=abcbcc
这段程序对x[3][4]赋值之后,x数组为:
abc
abc
abc
输出:
循环第一次输出首地址为x[0][0]的字符串,x[0][0]是a,所以输出abc;
循环第二次输出首地址为x[1][1]的字符串,x[1][1]是b,所以输出bc;
循环第三次输出首地址为x[2][2]的字符串,x[2][2]是c,所以输出c;
所以最后输出:abcbcc