尝试打印字符时程序崩溃

时间:2014-05-02 21:18:41

标签: c

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

使用此声明char * string =" hiii&#34 ;; 什么是

的价值
1) string[0]
2) *string
3) string[99]
4) *string+8

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

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

2 个答案:

答案 0 :(得分:5)

printf("%s", string[0]);

s转换说明符需要char *,但string[0]char

使用:

printf("%s", string);

打印字符串。

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

printf("%c", string[0]);

答案 1 :(得分:-1)

程序崩溃,因为地点,它需要指针的位置,例如。 * char,因为ouah上面写的是某些字符的值。但是,如果我们将其视为指针,则表明没有任何意义。所以你的程序崩溃了。