char指针的大小

时间:2015-01-11 15:34:14

标签: c

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吗?

2 个答案:

答案 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说明符可以防止意外地执行此操作。