int main()
{
int i;
char *names[5] = {"Miri", "Tali", "Ronit", "Avigail", "Shlomit"};
//Printing all the names:
for (i=0; i<5; i++)
printf("%s\n" , names[i]);
return 0;
}
为什么打印全名?名称[0](例如)不应该只打印M吗?
答案 0 :(得分:3)
names
是字符指针数组。因此names[0]
char *
指向"Miri"
。
对于其他后续项目也是如此。
答案 1 :(得分:0)
在您的计划中,names
是指向char
的一系列指针,正如 Rohan 的答案中已经提到的那样,所以要打印第一个字符你应该首先访问数组元素,然后访问0
字符
printf("%c\n", names[i][0]);
还要注意,对于一个字符,适当的说明符是"%c"
,因为"%s"
需要指向char
的指针,该指针应指向空终止的字节序列,即字符串。
你应该声明像
这样的数组const char *names[5] = {"Miri", "Tali", "Ronit", "Avigail", "Shlomit"};
因为元素是字符串文字,因此不应修改。因此,使用const
说明符可以防止意外地执行此操作。