-4
我看到這樣寫的一些代碼:字符數組的初始化和一些字符的字符串和C區別
char str[256] = {0};
或
char str[256] = {1};
當在前一種情況下,我用
printf("%s", str);
什麼都不給,
這是否意味着將所有str [0]到str [256]全部賦值爲1?
當latterthe stdio給一個ASCII微笑字符。
此外,有什麼
char s[256] = {0};
printf("%c", s[1]);
之間它使沒有什麼stdout
char s[256] = {0};
printf("%s", s[1]);
它給一個(空)
我不明白,因爲我差c char數組和c指針的初學者。
juanchopanza的回答是正確的,但還有其他一些事情要提及:整數值「0」與字符值「0」不一樣,這可能是您的意圖。 'printf(「%s」,...)'需要一個指向字符串的指針。在你得到「null」的情況下,你傳遞一個字符的值,它是0,因此被解釋爲一個空指針。如果你想從第二個字符('s [1]')開始打印字符串,你應該使用字符地址('printf(「%s」,&s [1])'') –