c語言問題sizeof求位元組怎麼沒有4艾怎麼是

2022-02-22 07:29:59 字數 2432 閱讀 5769

1樓:匿名使用者

這個考試題真的不怎麼樣。答案100%的是3,4因為strlen函式不包括'\0『的長度,而且sizeof就包括。你要是不信,你可以上機操作一下。。。

沒什麼考試題不是人出的。是人出的就有錯誤。國內就這樣。

如果題目是str[10]。那就應該選擇d了。否則這個題肯定出錯了。

不用考慮了

2樓:瀚漠

答案不用應該,肯定是:3,4

試卷也都是人出的,不能保證100%正確的,這題很明顯沒答案,很有可能題目打錯了,有可能是:

char str[10]=「abc「;

你也不用糾結這樣的題,只要你知道strlen和sizeof的區別就行了,strlen是字串長度,sizeof是實際佔用記憶體大小。

3樓:募思小孩

在機器上執行一下不行好了嘛,這麼快啊,ps 考題為什麼不能出錯啊!很權威機構出的?權威機構出的題不這麼簡單吧!如果是老師,可能是老師複製貼上的時候,忘記改數字了。

4樓:匿名使用者

這個題目的答案應該就是3, 4,這裡確實沒答案

5樓:匿名使用者

因為,列印的是%d 整型

c語言 弱弱問一下 int型別的一個字佔4個位元組 那題目中a=10;sizeof(a)為什麼不佔8個位元組 ?求教啊

6樓:金色潛鳥

d) 4,8

a 整型,4位元組。 b double 型, 8 位元組。

a[3] =,{},}; // {} 不可以版,改 a[3] =,,}; 就可以了權

7樓:匿名使用者

int 型佔有 4個位元組

size(a) 等於4;

double 型佔有8位元組

size(b)等於8

int x[3]=,{},};是可以通過編譯的,應該是你程式書寫有問題吧

c語言,用sizeof('$')得到的結果是4,一個字元的位元組不是1嗎?

8樓:幽幽月照人

因為你直接求了'$'這個常量,它存放在常量區,計算的時候只傳了地址過來,結果當然是4,如果你計算p=sizeof(sign),那就等於1了。

9樓:張簡元芹是群

輸出的是n而不是c。所以你什麼都不輸入只打個回車就輸出0;若輸入了字元,因為字元不是回車,所以還得反回去執行do後的n++,使n變成了1,然後c接收了回車就退出了……

在c語言求字元長度的問題,strlen與sizeof怎麼計算出來的長度不是我們理解的那樣?

10樓:匿名使用者

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

bai大小du

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

11樓:匿名使用者

strlen獲取字串bai的長度。

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

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

權zg是1+1=2

sizeof用於求取佔用的空間。

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

12樓:匿名使用者

strlen的結果是bai

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

以上純屬手打,望採納

c語言的sizeof()問題

13樓:

你的平臺有問題吧?我用vc++6.0經常用printf("%d" ,sizeof(int));這樣的句子,結果是4而不是1……

14樓:汐_楓

sizeof(型別)返回的是該型別的位元組數,是一個正整數,且不同軟體的型別的位元組數也是不一樣,

既然是整數,所有含%f(%lf…)會忽略sizeof(),等同於printf("%f");0代表輸出錯誤;

因為lld貌似是c++才有的,c用的是__int64,因此會因型別無法識別而亂碼,vc++6.0前面四個都是4,不知道你用的是啥軟體

15樓:匿名使用者

注意sizeof的返回值型別是一個size_t型,而size_t是這樣定義的,typedef unsigned int size_t,也就是說它是一個unsigned int型。所以只有第四個是對的,其它都會出錯。

我想問一下關於C語言的位元組問題,程式設計c語言位元組的問題

位元組 char int double long等都是c裡的資料型別。10位數 8位數 16位數等都是數制,稱10進位制,8進位制,16進位制。一個位元組用8個位來表示。即可以存放從0000 0000 0000 0001 0000 0010到1111 1111共2的八次方的數。double標量八個位...

c語言問題,急求,C語言問題,急求!!

一 不知道你是怎麼輸入的,可以提供一下你的執行截圖,幫你看看二 你程式中少了第三個輸入語句啊 printf 請輸入第一個字串 n scanf s a printf 請輸入第二個字串 n scanf s b printf 請輸入第三個字串 n scanf s c 這裡是不是應該加上這個?char p1...

c語言問題求解,C語言程式設計問題 約瑟夫問題求解

8 第一次迴圈p是指向2的,用 s控制輸出就是2010,第二次迴圈p增1指向0了,輸出自然是010。這很好理解。9 早期的編譯器是2位元組,後來的編譯器是4位元組了,所以二者都正確。一般教科書用的是早期的系統,應該是2位元組。不要糾結這些,知道就行了,若考試,按幾位元組算會明示的。10 001011...