#include <stdio.h>
int main(void){
char x [] = "hello world.";
printf("%s \n", &x[0]);
return 0;
}
以上代码打印出"hello world."
我如何打印"h"
?访问x[0]
不应该确保这一点吗?
答案 0 :(得分:7)
你应该这样做:
printf("%c \n", x[0]);
打印字符format specifier为c
。所以要使用的格式字符串是%c
。
另外,要访问有效索引i
的数组元素,您需要说array_name[i]
。您不应该使用&
。使用&
将为您提供元素的地址。
答案 1 :(得分:4)
访问
x[0]
不应该确保这一点吗?
不,因为&
中的&x[0]
获取了字符串第一个元素的地址(因此它等同于仅使用x
。
%s
将输出字符串中的所有字符,并在字符串的末尾看到空字符(这对于文字字符串是隐含的)。
为了打印出一个字符而不是整个字符串,请改用字符格式说明符%c
。
请注意,printf("%s \n", x[0]);
无效,因为x[0]
的类型为char
而%s
的格式为char *
。
答案 2 :(得分:3)
#include <stdio.h>
int main(void){
char x [] = "hello world.";
printf("%c \n", x[0]);
return 0;
}
答案 3 :(得分:2)
C中的字符串是一个字符数组,最后一个字符是NULL字符'\ 0'。当您在printf中使用“%s”字符串说明符时,它将开始在给定地址处打印字符,并继续直到它遇到空字符。要打印单个字符,请改用“%c”格式字符串。
答案 4 :(得分:0)
因为C中的字符串是一个字符数组。 该语句将打印第一个字符。
printf("%c \n", "hello world."[0]);