C語言問題高手來回答。字串陣列名代表的是什麼?下面的這個字串陣列多餘部分是存什麼

時間 2021-08-11 17:49:43

1樓:匿名使用者

str等效於&str[0]是個地址,編譯器會認為它是char格式的地址,所以你+1時的確會指向下一個字元地址,實際上str[14] = "ab" 與str[14] =是一樣的,剩下的就不改變原值,就是該記憶體段原本的狀態(高階優化),或者宣告時就把全部地址填入0

問題二是錯誤的,至少c語言規範沒有這種語法,str是個地址,也就是int,無法用字串來賦值

問題三,形引數組是一個指向陣列的指標,一個地址而已

2樓:

1、陣列名錶示陣列首地址,陣列名可以進行加操作的

2、剩下的位置沒有進行初始化,是什麼值未知

3、就是形參的陣列可以認為是一個指標

3樓:

str地址符和指標差不多;

可以和整形的一樣,只不過它整形的是輸出數字,它是輸出字元;

自動補充為"\0"

形引數組並不佔記憶體,行引數組靠實參傳遞資料的,所以形參可以接受所有實引數組的值

4樓:君上沙夏

陣列名代表陣列首地址,str[14]代表字串str是陣列名代表首地址,可以和整形陣列一樣用。

這樣初始化系統在後面自動加\0,後面什麼也不表示。後面是空的但是記憶體空間是申請了的

C語言字串問題,C語言字元陣列與字串問題

字串初始化,如果逐個賦值的話,系統不是會自動新增 0 嗎不是。圖一就是長度為4的陣列,圖二長度為5圖三會是新增 0,但是是會把後面所有的都設為 0因為圖一和圖四不以 0結尾,所以不能用strlen和strcmp,會越界 圖四也可以用char str 4 stop 這樣賦值。如果不手動加長度就會是5了...

C語言字元陣列與字串問題,C語言中將字串賦值給字元陣列的問題

渿河 這是在定義時初始化 如果你的右邊花括號內的字元個數少於 陣列元素個數 那麼其餘的陣列元素將會初始化為0 0 的ascii碼的值就是0 如果你不指定陣列元素個數 編譯器會自動幫你計算出元素個數的 char c 10 這個是已經給定了陣列的大小,達不到陣列大小的長度的話會自動添零的 c語言中將字串...

c語言字串問題

首先字串定義是 char c 用指標 而不是char c 這樣是單個字元定義了。其次字串賦值要加上雙引號 即c 0326 最後輸出用s d 是整型輸出了。0362是8進位制數 以0開頭 轉化為十進位制是242。char 佔一個位元組 型別的範圍是 128 127,242超過了char的表達範圍。所以...