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的表達範圍。所以...