如何访问字符数组的第一个字符?

Kay*_*Kay 2 c arrays indexing printf character

#include <stdio.h>

int main(void){
    char x [] = "hello world.";
    printf("%s \n", &x[0]);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

打印出上面的代码 "hello world."

我怎么打印出来的"h"?访问不应该x[0]确保这一点吗?

cod*_*ict 8

你应该做:

printf("%c \n", x[0]);
Run Code Online (Sandbox Code Playgroud)

打印char 的格式说明符c.所以要使用的格式字符串是%c.

这间位于有效的索引访问数组元素i,你需要说array_name[i].你不应该使用&.使用&将为您提供元素的地址.


Joh*_*ter 5

访问不应该x[0]确保这一点吗?

不,因为&in&x[0]获取字符串的第一个元素的地址(所以它相当于只使用x.

%s 将输出字符串中的所有字符看到字符串末尾的空字符(这对于文字字符串是隐式的)。

为了打印出一个字符而不是整个字符串,请改用字符格式说明符%c

请注意,这printf("%s \n", x[0]);将是无效的,因为x[0]它是类型char并且%s需要一个char *.

  • @Kay,不要发表评论说“非常感谢”,而是尝试单击帖子旁边的向上箭头。此外,也请单击最佳答案旁边的复选标记。 (3认同)