#include <stdio.h>
int main(void){
char x [] = "hello world.";
printf("%s \n", &x[0]);
return 0;
}
上面的代码打印出"hello world."
如何访问字符数组的第一个字符?
我怎么会打印出刚刚"h"
?访问x[0]
不应该保证这一点?
#include <stdio.h>
int main(void){
char x [] = "hello world.";
printf("%s \n", &x[0]);
return 0;
}
上面的代码打印出"hello world."
如何访问字符数组的第一个字符?
我怎么会打印出刚刚"h"
?访问x[0]
不应该保证这一点?
你应该这样做:
printf("%c \n", x[0]);
的format specifier打印字符是c
。所以要使用的格式字符串是%c
。
还要访问有效索引i
处的数组元素,您需要说array_name[i]
。你不应该使用&
。使用&
会给你元素的地址。
不应该访问
x[0]
确保这?
没有,因为在&x[0]
的&
获取字符串的第一个元素的地址(所以它相当于只用x
。
%s
将输出所有字符串中的字符看空字符在所述字符串的末尾(这是隐式为文字串)。
为了打印出一个字符,而不是整个字符串,使用字符格式说明,%c
代替。
请注意,printf("%s \n", x[0]);
将无效,因为x[0]
类型为char
,而%s
预计为char *
。
非常感谢,我很欣赏的,而不是发布评论说:“非常感谢”,请尝试单击后旁边的向上箭头您的帮助:) – Kay 2010-10-02 12:17:06
@Kay。此外,请单击旁边的复选标记,并以最佳答案为准。 – 2010-10-02 12:22:02
#include <stdio.h>
int main(void){
char x [] = "hello world.";
printf("%c \n", x[0]);
return 0;
}
非常感谢保罗:) – Kay 2010-10-02 12:18:49
C中的字符串是一个字符数组,其最后一个字符为NULL字符'\ 0'。当您在printf中使用“%s”字符串说明符时,它将在给定地址处开始打印字符,并继续执行,直至遇到空字符。要打印单个字符,请改用“%c”格式字符串。
由于C中的字符串是一个字符数组。 该声明将打印第一个字符。
printf("%c \n", "hello world."[0]);
这个伎俩! – Kay 2010-10-02 12:19:24