A. c語言中 sizeof()

sizeof(p)就是求數組p佔用的所有內存尺寸,不會理會其中裝載什麼數據。

B. C語言中,sizeof是一個

sizeof是C語言中保留關鍵字,也可以認為是一種運算符,單目運算符;sizeof是計算對象所佔的位元組數,通常用來查看變數、數組或結構體等所佔的位元組個數;
用法:
#include<stdio.h>
int main()
{
int l;
char a1[] = "abc";
l=sizeof( a1 );
printf("%d",l);//結果是:l=4;
return 0;
}
一個字元所佔用的內存位元組數為1;但數組最後還有一個NULL終止符,也佔一個位元組;

C. C語言中sizeof是什麼意思

sizeof是C語言中保留關鍵字,也可以認為是一種運算符,單目運算符。常見的使用方式:


int a=10;

int arr=[1,2,3];

char str[]="hello";

int len_a = sizeof(a);

int len_arr = sizeof(arr);

int len_str = sizeof(str)

printf("len_a=%d,len_arr=%d,len_str=%d ",len_a,len_arr,len_str)

結果是:len_a=4,len_arr=12,len_str=6

(3)c語言的sizeof擴展閱讀:

在 Pascal 語言中,sizeof() 是一種內存容量度量函數,功能是返回一個變數或者類型的大小(以位元組為單位)。

在 C 語言中,sizeof() 是一個判斷數據類型或者表達式長度的運算符。

在Pascal 語言與C語言中,對 sizeof() 的處理都是在編譯階段進行。

sizeof是C/C++中的一個操作符(operator),簡單的說其作用就是返回一個對象或者類型所佔的內存位元組數。

MSDN上的解釋為:

The sizeof keyword gives the amount of storage, in bytes, associated with a variable or a type(including aggregate types). This keyword returns a value of type size_t.



網路-sizeof

D. c語言程序里sizeof是什麼意思

在 Pascal 語言中,sizeof() 是一種內存容量度量函數,功能是返回一個變數或者類型的大小(以位元組為單位);在 C 語言中,sizeof() 是一個判斷數據類型或者表達式長度的運算符。

在Pascal 語言與C語言中,對 sizeof() 的處理都是在編譯階段進行。

(4)c語言的sizeof擴展閱讀

需要注意的是,結構體的 sizeof,由於位元組對齊的原因,結構體所佔的空間,並不是其所有成員所佔空間的累加和。

sizeof 對一個表達式求值,編譯器根據表達式的最終結果類型來確定大小,一般不會對表達式進行計算。所以

sizeof(1+2)等價於sizeof(int);

sizeof(1+2.5)等價於sizeof(double)。

E. c語言裡面的sizeof是干什麼的

是計算一個數在計算機里所佔的內存的,比如說:
sizeof(int)=2
int型的在計算機里佔2位元組;
比如:
sizeof(float)=4;
sizeof(2)=2;

F. C語言的sizeof()問題

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

G. c語言中SIZEOF啥意義

一、sizeof的概念
sizeof是C語言的一種單目操作符,如C語言的其他操作符++、--等。它並不是函數。sizeof操作符以位元組形式給出了其操作數的存儲大小。操作數可以是一個表達式或括在括弧內的類型名。操作數的存儲大小由操作數的類型決定。

二、sizeof的使用方法

1、用於數據類型
sizeof使用形式:sizeof(type)
數據類型必須用括弧括住。如sizeof(int)。

2、用於變數
sizeof使用形式:sizeof(var_name)或sizeofvar_name
變數名可以不用括弧括住。如sizeof(var_name),sizeofvar_name等都是正確形式。帶括弧的用法更普遍,大多數程序員採用這種形式。

注意:sizeof操作符不能用於函數類型,不完全類型或位欄位。不完全類型指具有未知存儲大小的數據類型,如未知存儲大小的數組類型、未知內容的結構或聯合類型、void類型等。
如sizeof(max)若此時變數max定義為intmax(),sizeof(char_v)若此時char_v定義為charchar_v[MAX]且MAX未知,sizeof(void)都不是正確形式。

三、sizeof的結果
sizeof操作符的結果類型是size_t,它在頭文件
中typedef為unsignedint類型。該類型保證能容納實現所建立的最大對象的位元組大小。

1、若操作數具有類型char、unsignedchar或signedchar,其結果等於1。
ANSIC正式規定字元類型為1位元組。
2、int、unsignedint、shortint、unsignedshort、longint、unsignedlong、 float、double、longdouble類型的sizeof在ANSIC中沒有具體規定,大小依賴於實現,一般可能分別為2、2、2、2、 4、4、4、8、10。
3、當操作數是指針時,sizeof依賴於編譯器。例如MicrosoftC/C++7.0中,near類指針位元組數為2,far、huge類指針位元組數為4。一般Unix的指針位元組數為4。
4、當操作數具有數組類型時,其結果是數組的總位元組數。
5、聯合類型操作數的sizeof是其最大位元組成員的位元組數。結構類型操作數的sizeof是這種類型對象的總位元組數,包括任何墊補在內。
讓我們看如下結構:
struct{charb;doublex;}a;
在某些機器上sizeof(a)=12,而一般sizeof(char)+sizeof(double)=9。
這是因為編譯器在考慮對齊問題時,在結構中插入空位以控制各成員對象的地址對齊。如double類型的結構成員x要放在被4整除的地址。
6、如果操作數是函數中的數組形參或函數類型的形參,sizeof給出其指針的大小。
四、sizeof與其他操作符的關系
sizeof的優先順序為2級,比/、%等3級運算符優先順序高。它可以與其他操作符一起組成表達式。如i*sizeof(int);其中i為int類型變數。
五、sizeof的主要用途
1、sizeof操作符的一個主要用途是與存儲分配和I/O系統那樣的常式進行通信。例如:
void*malloc(size_tsize),
size_tfread(void*ptr,size_tsize,size_tnmemb,FILE*stream)。
2、sizeof的另一個的主要用途是計算數組中元素的個數。例如:
void*memset(void*s,intc,sizeof(s))。
六、建議
由於操作數的位元組數在實現時可能出現變化,建議在涉及到操作數位元組大小時用sizeof來代替常量計算。

H. C語言sizeof函數如何使用

(1)sizeof不是函數,它只是一個操作符(operator)。

(2)sizeof的作用是返回一個對象或者類型所佔的內存位元組數,它的返回值的類型是size_t類型,而size_t是在頭文件stddef.h中定義的。size_t 這是一個依賴於編譯系統的值,一般定義為
「typedef unsigned int size_t;」,也就是無符號整型。

(3)sizeof有三種語法形式,如下:
1) sizeof( object ); // sizeof( 對象 );
2) sizeof( type_name ); // sizeof( 類型 );
3) sizeof object; // sizeof 對象;
所以,

inti;
sizeof(i);//ok
sizeofi;//ok
sizeof(int);//ok
sizeofint;//error

既然寫法3可以用寫法1代替,為求形式統一以及減少我們大腦的負擔,只用寫法1就行了!

(4)說回你的提問,既然sizeof的返回值是unsigned int型,那麼很明顯可以用 %u 、%o 、%x 來輸出,這三個都是無符號整型的格式符,分別對應十進制、八進制、十六進制。

(5)而%zd是修飾符z與有符號十進制整型格式符%d組合而成的格式符,表示按 size_t 的類型來輸出。那麼,肯定,%zd 可以用來輸出 sizeof 的返回值。

(6)而%d是按有符號整型來輸出數值,所以與unsigned int的表示範圍是不一樣的,如果 sizeof 的返回值超出了 %d 的表示範圍的話,是會輸出一個不正確的數值的。

總結一下:sizeof 的返回值可以用 %u 、 %o 、 %x 、 %zd 來正常輸出,而用 %d 的時候需要注意返回值是否會超出 %d (即 signed int 型)的表示範圍。

另外,有的操作系統或編譯器里,size_t 的類型可能是 long unsigned int 型,所以 輸出 sizeof 的返回值的時候, 應該用 %lu 等。

以上,如有幫助,煩請點點贊,謝謝!

I. C語言中,sizeof運算符有什麼作用

sizeof運算符

該運算符在編譯階段就已經起作用了。它以位元組為單位返回其操作數的大小。它的操作數可以是數據對象也可以是一個類型。如果是類型那麼操作數需要用圓括弧括起來。

如:sizeof(int)=4;

(9)c語言的sizeof擴展閱讀:

C語言其他運算符:

1、取模運算符%

該運算符有個特性就是只支持整數運算。它的作用就是用左邊的操作數除以右邊的操作數得到的余數。它對浮點數其他類型不起作用。

如:11%2=1因為11除以2得5餘1

2、自增自減運算符++/--

這種運算符的基本作用就是讓其操作數增加1或者減去1。這種運算符有兩種模式:前綴模式和後綴模式。

前綴模式:運算符放在操作數的前面,在表達式中求值時先將操作數進行加1或者減1操作然後再參與運算。

後綴模式:運算符放在操作數的後面,在表達式中求值時先將操作數參與運算然後再對操作數進行加1或者減1操作。

3、三目運算符?:

顧名思義就是三個操作數的運算符,它的用法時當問號前面的表達式的值為真時,取值為冒號前面的數值,否則取值為冒號後面的數值。由於它的執行效率較高,常被我們用來代替條件語句。

如:x>1?2:3;這句話的意思就是當x的值大於1時,整個表達式的值為2,否則為3。

J. c語言中的 *sizeof 問題

double是雙精度浮點數,比float 能表示小數點兒後更多的位。
語法上可以不一樣,malloc的參數是分配置內存的大小,你寫個240代替30*sizeof(double)
也是可以的,但是不直觀。返回值是void *,  前面的(double*)是強制類型轉換,應該是要賦值給一個double*的變數。