如何初始化和打印二维字符数组?

时间:2015-12-25 11:48:53

标签: c

char name[5][5]={  ""         };

printf("%s",&name[0][0]);

我只是想知道为什么“&”用于printf。 为什么[] [0]第二个括号中有一个'0'?

同样

char *name[5][5]={    ""       };

printf("%s",&name[0][0]);

为什么在这里也&是用吗?

我根本无法理解。 在指针数组中不应该有*而不是&?

1 个答案:

答案 0 :(得分:1)

%s期望参数类型为char *&name[0][0]的类型为char *&name[0][0]是第一个字符串的第一个字符的地址。如果要从头开始打印第一个字符串,则必须使用&name[0][0] 使用&name[0][1]将从第二个字符&name[0][2]打印第三个字符的字符串,依此类推,只要字符串足够长。