尝试打印字符时程序崩溃

-1 c

我从我的书中复制了这个练习.

使用此声明char*string ="hiii"; 什么是有价值的

1) string[0]
2) *string
3) string[99]
4) *string+8
Run Code Online (Sandbox Code Playgroud)

我编写以下代码试图显示其值string[0],但是当我运行代码时,它崩溃了.谁能告诉我为什么我的代码崩溃了?

int main(int argc, char *argv[]) {
    char *string = "hiii";
    printf("%s", string[0]);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

oua*_*uah 5

printf("%s", string[0]);
Run Code Online (Sandbox Code Playgroud)

s转换说明符需要a char *但是string[0]a char.

使用:

printf("%s", string);
Run Code Online (Sandbox Code Playgroud)

打印字符串.

要打印字符串的第一个字符,请使用:

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

  • @djechlin如果你认为这个问题很糟糕,你应该回答问题而不是正确答案.就我而言,我回答了我想要的问题. (2认同)