#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