c語言中陣列長度問題

2021-12-18 21:15:10 字數 598 閱讀 7901

1樓:奧貝利科斯

首先你要明白 乙個整形資料或者字元型資料佔多少個位元組 跟你的系統和編譯器都有關

vc++6.0 乙個int形占用四個位元組 乙個char形占用1個位元組然後你的兩個陣列都包含7個元素

然而第二個陣列的賦值很詭異 字元陣列接收一些非字元資料 還真沒試過怎麼樣

字元陣列看見乙個\0就結束了

2樓:匿名使用者

你的兩個陣列的長度都是 80。如果不是動態開闢的陣列,你宣告的時候給多少長度就是多少長度。

第二個陣列的長度是2?估計你使用 strlen 函式求吧? strlen只能求字串長度,沒辦法求陣列長度。

strlen 是用 '\0' 來判斷字串的結束標誌的,而你第二個陣列中放置了幾個'\0' (ascii碼為0,),所以得到的長度是 2。將第二個陣列改為char m[80]=; 用 strlen 求得結果為 7。

求陣列長度的正確方法:

sizeof(mes)/sizeof(int);

sizeof(mes)/sizeof(char)

3樓:匿名使用者

第二個應該是char m[80]=;吧

c語言中關於字元陣列的長度問題,C語言中關於字元陣列的長度問題

r 這是個字元陣列,系統只為它分配了3個位元組的空間,但是strlen只有遇到 0 才會返回 於是它會向後繼續進行,直到有 0 這其實是越界 或許沒有,可能訪問的是q 10 了.你可以這樣 printf s n r 來檢視下列印的資訊。在我的上面 tc 是 3 3 3 9 哎。strlen 是在st...

c語言中,關於字串長度與字元陣列長度的問題

c語言約定字串以 0 結尾,上述陣列末尾沒有 0 所以字串的長度無法確定。陣列長度指的是陣列的元素個數,字串長度是以 0 為標誌來確定的,舉個例子 char a 20 abc 陣列長度是20,而字串長度是3,隱含的 0 不算在字串長度中。char a 按陣列來說已經初始化了3個char型別,分配了3...

c語言陣列問題C語言中用陣列解約瑟夫問題

答案是a 前2個 就表示乙個 字元 接著是141共三個字元 接著的 141表示乙個字元 abc三個字元 t製表符,乙個字元 所以總共9個字元 include include void main for i 0 i 5 i 放入新陣列printf n for i 0 i 5 i 輸出新陣列 求平均63...