在c語言求字元長度的問題strlen與sizeof怎麼計算

2021-04-17 15:24:35 字數 572 閱讀 6199

1樓:匿名使用者

sizeof(p)計算的是p變數的

bai大小du

zhi由於p是指標,p的大小就是4位元組dao,它不是求內容的長度,

2樓:匿名使用者

strlen獲取字串bai的長度。

每個中文du字元占用zhi兩個位元組,所以dao中國是strlen是2+2=4;

英文本元儲存一版個位元組,故

權zg是1+1=2

sizeof用於求取占用的空間。

但是注意,你求取的物件不是字串本身,而是變數本身。p和q兩個變數均為指標,指標在計算機中占用4個位元組,所以最後兩個都是4.

3樓:匿名使用者

strlen的結果是bai

正確的,而dusizeof是在編譯的時候處理的,zhi這個dao時候編譯專器還不知道你這個指標指向的內容呢,因為你屬這個指標指向中國,是在執行的時候才處理的,好好想想,就是sizeof是在編譯的時候就已經算出結果了,不管你程式執行的時候指向**,它都是那個值。如果你寫sizeof(」中國」)那結果就是5了

以上純屬手打,望採納

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

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

C 字串長度與位元組的問題,C 字串有效長度的問題

1 strlen函式是返回字元長度 以空字元為結束符 所以是5 2 sizeof str 返回是指定變數占用空間大小str是指標變數,指標大小為4,所以返回4你可以把str變成陣列 char str 12345 此時str是陣列,所以sizeof str 返回的是6 strlen 函式返回不包含結束...

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

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