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

C 为什么要打印完整的字符数组而不是第一个字符?,c,pointers,C,Pointers,这是源代码 char target[80]="hello", *tar; tar=⌖ printf("%s",tar); //printing hello tar正在获取目标[0]的地址那么它为什么要打印整个字符数组。使用%c打印单个字符,使用%s打印字符串。使用%c打印单个字符,使用%s打印字符串。使用%c打印单个字符,使用%s打印字符串。使用%c打印单个字符,使用%s打印字符串字符串。当您说%s并指定字符串的起始内存(或任何中间内存)时,它会一直打印到遇到“\0”字

这是源代码

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

tar
正在获取目标[0]的地址那么它为什么要打印整个字符数组。

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

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

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

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

当您说%s并指定字符串的起始内存(或任何中间内存)时,它会一直打印到遇到“\0”字符为止

考虑

    char *name = "Hello";
将在内部存储为 你好\0


因此,如果您需要单个字符,请在说出%s时选择%c.

,并指定字符串的起始内存(或任何中间内存),直到它遇到“\0”字符为止

考虑

    char *name = "Hello";
将在内部存储为 你好\0


因此,如果您需要单个字符,请在说出%s时选择%c.

,并指定字符串的起始内存(或任何中间内存),直到它遇到“\0”字符为止

考虑

    char *name = "Hello";
将在内部存储为 你好\0


因此,如果您需要单个字符,请在说出%s时选择%c.

,并指定字符串的起始内存(或任何中间内存),直到它遇到“\0”字符为止

考虑

    char *name = "Hello";
将在内部存储为 你好\0


因此,如果您需要单个字符,请使用%c。

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

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

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

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

%s表示在字符“tar”指向和下一个“\0”之间打印字符

printf(“%c”,*tar)


将打印您需要的内容。

%s表示在字符“tar”指向和下一个“\0”之间打印字符

printf(“%c”,*tar)


将打印您需要的内容。

%s表示在字符“tar”指向和下一个“\0”之间打印字符

printf(“%c”,*tar)


将打印您需要的内容。

%s表示在字符“tar”指向和下一个“\0”之间打印字符

printf(“%c”,*tar)


将打印您需要的内容。

因为您告诉它打印字符串->
%s
。因为这是字符串在C中的工作方式。它们是字符串中第一个字符的指针。您希望输出的内容是什么?您的代码将向stdout打印“hello”。%s格式告诉printf打印所有字符,直到到达空终止符(表示字符串的结尾)。此外,您的代码可能会生成一个编译器警告,提示从不兼容的指针进行赋值是错误的。即使
target
&target
具有相同的地址。因为您告诉它打印一个字符串->
%s
。因为这就是字符串在C中的工作方式。它们是字符串中第一个字符的指针。您希望看到的输出是什么?您的代码将向stdout打印“hello”。%s格式告诉printf打印所有字符,直到到达空终止符(表示字符串的结尾)。此外,您的代码可能会生成一个编译器警告,提示从不兼容的指针进行赋值是错误的。即使
target
&target
具有相同的地址。因为您告诉它打印一个字符串->
%s
。因为这就是字符串在C中的工作方式。它们是字符串中第一个字符的指针。您希望看到的输出是什么?您的代码将向stdout打印“hello”。%s格式告诉printf打印所有字符,直到到达空终止符(表示字符串的结尾)。此外,您的代码可能会生成一个编译器警告,提示从不兼容的指针进行赋值是错误的。即使
target
&target
具有相同的地址。因为您告诉它打印一个字符串->
%s
。因为这就是字符串在C中的工作方式。它们是字符串中第一个字符的指针。您希望看到的输出是什么?您的代码将向stdout打印“hello”。%s格式告诉printf打印所有字符,直到到达空终止符(表示字符串的结尾)。此外,您的代码可能会生成一个编译器警告,提示从不兼容的指针进行赋值是错误的。尽管
target
&target
的地址相同,但您也可以