我从我的书中复制了这个练习。
使用此声明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;
}
答案 0 :(得分:5)
printf("%s", string[0]);
s
转换说明符需要char *
,但string[0]
为char
。
使用:
printf("%s", string);
打印字符串。
要打印字符串的第一个字符,请使用:
printf("%c", string[0]);
答案 1 :(得分:-1)
程序崩溃,因为地点,它需要指针的位置,例如。 * char,因为ouah上面写的是某些字符的值。但是,如果我们将其视为指针,则表明没有任何意义。所以你的程序崩溃了。