C語言字串陣列

2022-06-21 23:20:02 字數 846 閱讀 5386

1樓:20分鐘假腿

不是的,printf裡%s是通過後面的name定址到該記憶體單元,然後從該記憶體單元開始讀取資料,知道'\0'字元結束。所以會把你輸入的東西輸出

2樓:莊政警

是的,但是%s的含義是,把從這個地址開始的內容當作ascii碼依次輸出來,直到碰到'\0',就是一種機械的做法

比如:int a=;

printf("%s",a);

會輸出abcd

3樓:糖二灰

理論上你是正確的啊,就是不知道你要問的什麼。

printf ("%c, what's your weight in pound?\n", name[0]);第7行如果改成這樣,它就只列印出來name的第一個元素,注意%c和後邊的是name[0],不是name[0]的地址。

printf ("%s, what's your weight in pound?\n", name);//第7行如果是這樣,因為前邊的修飾符是%s,表示輸出的是字串,字串是以'\0'結尾的啊,你把name的地址傳進去以後,他就會從name的開頭開始列印輸出,直到遇到'\0'停止。

printf ("%s, what's your weight in pound?\n", &name[0]);第7行還可以這樣寫。

4樓:匿名使用者

陣列名是指向陣列的第一個元素的存放位置的,%s就是把陣列名指向的一個字串在螢幕上輸出

5樓:小兆

這是人為name字元陣列記憶體放的字元序列是以/0結束的,也就是字元陣列可以認為是一個字串,把字串的首地址傳給printf是沒有問題的。