为什么要打印完整的字符数组而不是第一个字符?

时间:2014-01-13 06:50:44

标签: c pointers

这是源代码

char target[80]="hello", *tar;
tar=⌖
printf("%s",tar);  //printing hello

tar获取target[0]的地址,然后输出整个字符数组的原因。

4 个答案:

答案 0 :(得分:2)

当你说%s并指定字符串的起始内存(或任何中间)时,它会被打印,直到遇到'\ 0'字符。

考虑

    char *name = "Hello";

将在内部存储为         你好\ 0

所以,如果你需要一个字符,请去%c。

答案 1 :(得分:1)

使用%c打印单个字符,%s用于打印字符串。

答案 2 :(得分:0)

C字符串以空值终止。当您将表示字符串的字符数组中的第一个字符的地址传递给printf并告诉它使用%s将输出格式化为字符串时,它将打印从该字符串开始的所有字符到达空(NUL)字符'\0'之前的第一个字符的地址。

答案 3 :(得分:0)

%s表示字符'tar'指向和下一个'\ 0'之间的打印字符。

  

的printf( “%C”,*焦油);

将打印您需要的内容。