1樓:連嘉悅牢義
我來回答你的問題:
sizeof函式的意思是統計變數長度。
int的長度長2個位元組;
char的長度長1個位元組;
float的長度長4個位元組;
union
uuua的長度取決於其中成員中最長的變數的位元組長度,在這裡為char型別,共五個元素值,長度為5。
那麼開始統計總長度也就是2+1+4+5=12;
希望你明白,祝您開心,很榮幸為您回答問題。
2樓:凌曦
分整型和長整型
整型為2 長整型為4
是哪種要看開始的main中怎樣定義
不是跟編輯器有關的
如果沒有特殊的標註 例如long***
一般預設為整型 輸出為2
3樓:匿名使用者
樓上所言是正確的哦,我來混點分,呵呵
型別大小 是跟編譯器相關的,自己也可以在編譯器選項裡面設定
也可以通過**來操作
c語言中的 *sizeof 問題 10
4樓:
選a因為union是共用體,他們用同一段記憶體空間,每次用時,都是覆蓋式的,第一次時分配1個位元組,第二次時分配2個位元組,公用上次分配的一個自己的空間,同理下推,結果就是型別長度最長的那個。所以int
2個位元組。
5樓:芒柔諫珠雨
對。。。在vc++下,int佔4個位元組,a陣列有2個成員,所以結果是8.。。
其他編譯器中int佔2個位元組的話結果就是4
6樓:
double是雙精度浮點數,比float 能表示小數點兒後更多的位。
語法上可以不一樣,malloc的引數是分配置記憶體的大小,你寫個240代替30*sizeof(double)
也是可以的,但是不直觀。返回值是void *, 前面的(double*)是強制型別轉換,應該是要賦值給一個double*的變數。
c語言中sizeof是什麼意思
7樓:肥仙女
sizeof是c語言中保留關鍵字,也可以認為是一種運算子,單目運算子。常見的使用方式:
int a=10;
int arr=[1,2,3];
char str="hello";
int len_a = sizeof(a);
int len_arr = sizeof(arr);
結果是:len_a=4,len_arr=12,len_str=6
8樓:匿名使用者
int一般佔據四個位元組,double佔據八個位元組
9樓:匿名使用者
char p=,q="abc";
給字元陣列p賦值,共3個元素:'a','b','c'
給字元陣列q賦值,共4個元素:'a','b','c',"\0",因為直接用字串給字元陣列賦值的話,系統最後會加上一個"\0"
sizeof表示字串元素的個數。
10樓:
sizeof是c/c++中的一個操作符(operator),簡單的說其作用就是返回一個物件或者型別所佔的記憶體位元組數
在你的程式中就是輸出p和q陣列所佔用的位元組數
11樓:聽不清啊
sizeof是計算物件所佔的位元組數,通常用來檢視變數、陣列或結構體等所佔的位元組個數。
比如:int a;
char s="he likes swim very much."
struct
person;
sizeof(a); // 計算變數a所佔的位元組數,等價於sizeof(int)
sizeof(s); // 計算字串所佔的位元組數(包括串尾的串結束符'\0'在內)
sizeof(person); // 計算整個結構所佔的位元組總數
12樓:竹林傾聽雨
指的是該物件在記憶體中所佔的位元組數,
例如:你的sizeof(p)是3,佔三個位元組,sizeof(q)佔4個位元組
因為字元陣列還有一個界定符'\0',用來標識字串的結束。
13樓:喻元愷
就是取他在記憶體中佔的寬度啥
c語言sizeof問題
14樓:吉紫萱功彭
你確定是14?
經測試sizeof(string)
應該是字串自身的大小
14沒錯
sizeof(string+n)
0<=n<=字串的長度
大小一律
是4,這個好解釋,做了+n運算之後string+n就是一個地址了,sizeof得到的是字串指標的大小,所以是4位元組
15樓:鮮日國漢
同意樓上的答案,'e'為char型別常量,char型和short型參與運算時,必須先轉換成int型,所以sizeof('e')就是求int型別再記憶體佔用位元組
16樓:智傲易奉乾
巨集被替換為後面的
也就是說sizeof(string+1)被替換為sizeof("hello,world!"+1),嚴格來說這個都算語法錯誤,因為sizeof後面應該跟一個型別。所以預設的求得是字串的長度,後面的會被忽略。
17樓:匿名使用者
選cchar字元是一個位元組的,所以是1float是四個位元組的,所以是4而int這個有點特殊,有2個位元組,也有4個位元組double是8個位元組的,所以是8sizeof是這個型別所佔用的位元組數
18樓:匿名使用者
答案選c 在c語言中char int float double 分別佔1 2 4 8 個位元組大小.sizeof()是計算變數所佔記憶體的大小
19樓:過磊金韋曲
共用體的長度等於裡面最長的成員長度,所以共用體裡面的
char
u1[5],最長,所以,他的總長度為2+1+4+5=12,謝謝,祝您週末愉快~
20樓:昝和儲平寧
int佔2個位元組
char佔1個位元組
float
佔4個位元組
加上公用體中的char型別的陣列5個
再加上int的陣列2個位元組
一共是12個位元組
21樓:崔蒙洪槐
int2b+char
1b+float
4b+char
[5]5b
=12b
聯合體是指多個變數共享同一個起始地址。聯合體的總位元組數為佔位元組數最多的變數的位元組數。
如該例中的char
u1[5]佔了5byte比int
u2[2]多一個位元組。
22樓:匿名使用者
經下列語句「char x=65 ; float y=7.3; int a=100; double b=4.5;」定義後,sizeof(x),sizeof(y),sizeof(a),sizeof(b)在微機上的值分別為(b) sizeof的功能:
判斷資料型別長度符(求位元組數,我說這個是為了讓好理解一點)解:char 在系統記憶體是佔一個位元組,所以他的結果是1; float 在系統記憶體是佔二個位元組,所以他的結果是2; int 在系統記憶體是佔二個位元組,所以他的結果是2; double在系統記憶體是佔四個位元組,所以他的結果是4; 按照sizeof的功能,不是求該變數存了多少,而是求該變數在系統定義什麼型別,輸出的結果是型別佔用記憶體的多少,所以答案是:b
23樓:官悌房馨蓉
不知道你怎麼算的。我在vs2010上試了試,結果應該是20
c語言中 sizeof()
24樓:匿名使用者
sizeof(p)就是求陣列p佔用的所有記憶體尺寸,不會理會其中裝載什麼資料。
c語言中sizeof的問題
25樓:匿名使用者
在函式內部,「sizeof(buff)」相當於是sizeof(char*),指標型別大小就是4。傳引數時傳的不是陣列,而是陣列首地址。
26樓:薩爾那加
實引數組名傳參至形參,陣列名退化為指標,char str退化為char* str
關於c語言sizeof的問題
27樓:風若遠去何人留
主函式應該是main,你打錯成mian了
c語言有關sizeof的問題
28樓:雨諾與諾
'a'和『0』都是字元型,一個字元型一個位元組,sizeof是算佔多少記憶體,'a'+'0',是轉化為int進行處理的,計算後是一個int型。int是整形,有的編譯器佔2個位元組,有的佔4個。所以是2,1
29樓:匿名使用者
因為'a'和'0'都表示的是字元,而字元型常量佔據的記憶體空間為1位元組,即sizeof('a')=1,sizeof('a'+'0')=1+1=2,另外條件中的sizeof(int)表示的是整型資料所佔的空間,和下面其實沒有關係
30樓:受映冬俟山
sizeof(a)
說的是結構體的大小2+1+2=5
sizeof(b)是指標b的大小,它在不同位的機器上佔的位元組數不同,在你的機器上可能是2了
指標不因為型別的不同而使佔的自己數變化
它就是一個整型佔的位元組數
char
*p;int
*q;printf("%d\n",sizeof(p));
printf("%d\n",sizeof(q));
結果都是2,不信自己試試
31樓:匿名使用者
'a'+'0',是轉化為int進行處理的。
'a'則只是一個byte
32樓:怕霓
看起來像是16位機;
'a'與'0'都是char型的常量,一個char型的位元組為1。
另外值得注意的是char、int、long等等各種資料型別的位元組數和機器的位數有關。
c語言sizeof()使用的問題
33樓:匿名使用者
因為在fn裡面陣列退化成指標了,所以sizeof(b)返回的是一個指標的大小
如果你想在fn裡面獲得和main裡面同樣的效果,則需要告訴fn引數的大小,不過這樣就限定了陣列引數的大小了參見#include
;fn(temp);
printf("%d", sizeof(temp));}
34樓:千秋
int型變數在記憶體中佔4個位元組,double型變數在記憶體中佔8個位元組
sizeof是獲取引數的大小,所以答案是4和8
35樓:匿名使用者
在fn函式裡,形參float b其實與float *b是等效的。
也就是說,在這裡b實際上是一個指標,而在32位機器上,指標的大小是32位的,也就是4個位元組。
而在主函式裡,temp是一個陣列,具有10個float元素,所以大小是40個位元組。
36樓:匿名使用者
肯定不一樣哦,sizeof是靜態不是動態計算,你在執行前這個值就有了,另外陣列作為函式的引數,跟指標類似。
c語言中sizeof啥意義,c語言中SIZEOF啥意義
一 sizeof的概念 sizeof是c語言的一種單目操作符,如c語言的其他操作符 等。它並不是函式。sizeof操作符以位元組形式給出了其運算元的儲存大小。運算元可以是一個表示式或括在括號內的型別名。運算元的儲存大小由運算元的型別決定。二 sizeof的使用方法 1 用於資料型別 sizeof使用...
C語言中有什麼意義,c語言中SIZEOF啥意義
是按位取反,即把變數在記憶體中的值的二 進位制形式的各位,1變成0,0變成1.比如67的二進位制是01000011,後變成10111100 是位左移,比如67 3,就是把01000011左移3位,變成00011000.0 是c c 裡面的單目運算子,它按位取反後返回。你的這個 temp 0 1.0左...
C語言問題if語句巢狀C語言中三個if語句的巢狀怎理解
要點是1 if與else的成對關係依照就近原則2 if與else的成對關係遇到花括號時,就近原則找相成對花括號3 區域性 塊一定要加括號 if a 1 if b 1 printf yes n a 1且b 1時執行else printf no n a 1且b 1時執行 用括號括起來更容易理解 if a...