在C或C ++中, Sizeof是一個很是經常使用的運算符。它是一個編譯時一元運算符,可用於計算其操做數的大小。sizeof的結果是無符號整數類型,一般用size_t表示。sizeof能夠應用於任何數據類型,包括原始類型(例如整數和浮點類型,指針類型)或複合數據類型(例如Structure,union等)。ios
用法編程
sizeof()運算符根據操做數類型以不一樣方式使用。數組
當將sizeof()與int,float,char…等數據類型一塊兒使用時,它僅返回分配給該數據類型的內存量。微信
讓咱們來看一個例子:學習
C語言:spa
#include <stdio.h>指針
int main()視頻
{blog
printf("%lu\n", sizeof(char));教程
printf("%lu\n", sizeof(int));
printf("%lu\n", sizeof(float));
printf("%lu", sizeof(double));
return 0;
}
C ++:
#include <iostream>
using namespace std;
int main()
{
cout << sizeof(char)<<"\n";
cout << sizeof(int)<<"\n";
cout << sizeof(float)<<"\n";
cout << sizeof(double)<<"\n";
return 0;
}
注意:sizeof()可能會根據機器提供不一樣的輸出,咱們已經在32位gcc編譯器上運行了程序。
當將sizeof()與表達式一塊兒使用時,它將返回表達式的大小。看例子:
C語言:
#include <stdio.h>
int main()
{
inta = 0;
double d = 10.21;
printf("%lu", sizeof(a + d));
return 0;
}
C ++:
#include <iostream>
using namespace std;
int main()
{
int a = 0;
double d = 10.21;
cout << sizeof(a + d));
return 0;
}
從int和double的第一種狀況下咱們知道,大小分別是4和8,a是int變量,而d是double變量。最終結果將是兩倍。所以,咱們程序的輸出爲8個字節。
Sizeof可用於自動計算數組元素的數量。讓咱們看例子:
C語言:
#include <stdio.h>
int main()
{
int arr[] = { 1, 2, 3, 4, 7, 98, 0, 12, 35, 99, 14 };
printf("Number of elements:%lu ", sizeof(arr) / sizeof(arr[0]));
return 0;
}
C ++:
#include <iostream>
using namespace std;
int main()
{
int arr[] = { 1, 2, 3, 4, 7, 98,
0, 12, 35, 99, 14 };
cout << "Number of elements: "
<<(sizeof(arr) / sizeof(arr[0]));
return 0;
}
sizeof在動態內存分配中被大量使用。例如,若是咱們要分配足以容納10個整數的內存,而咱們不知道該特定機器中的sizeof(int)。咱們能夠藉助sizeof進行分配。
int* ptr = (int*)malloc(10 * sizeof(int));
但願對你們有幫助!更多知識,會繼續分享奧~
另外若是你想更好的提高你的編程能力,學好C語言C++編程!彎道超車,快人一步!筆者這裏或許能夠幫到你~
C語言C++編程學習交流圈子,QQ羣1090842465【點擊進入】微信公衆號:C語言編程學習基地
分享(源碼、項目實戰視頻、項目筆記,基礎入門教程)
歡迎轉行和學習編程的夥伴,利用更多的資料學習成長比本身琢磨更快哦!
編程學習書籍分享:
編程學習視頻分享: