產生與 char 型別的大小有關的運算元大小。
說明
有關 sizeof ... 運算子的資訊,請參閱省略號和可變引數模板。
sizeof unary-expression sizeof ( type-name )
備註
sizeof 運算子的結果為 size_t 型別,它是包含檔案 STDDEF.H 中定義的整數型別。 利用此運算子,你可以避免在程式中指定依賴於計算機的資料大小。
sizeof 的運算元可以是下列項之一:
型別名稱。 若要將 sizeof 用於型別名稱,則該名稱必須用括號括起。
一個表示式。 當用於表示式時,無論是否使用括號都可指定 sizeof。 不計算表示式。
當 sizeof 運算子應用到 char 型別的物件時,它將生成 1。 當 sizeof 運算子應用到陣列時,它將產生該陣列的位元組總數,而非由陣列識別符號表示的指標的大小。 若要獲取由陣列識別符號表示的指標的大小,請將其作為引數傳遞給使用 sizeof 的函式。 例如:
示例
#include
using namespace std;
size_t getPtrSize( char *ptr )
{
return sizeof( ptr );
}
int main()
char szHello[] = "Hello, world!";
cout << "The size of a char is: "
<< sizeof( char )
<< "\nThe length of " << szHello << " is: "
<< sizeof szHello
<< "\nThe size of the pointer is "
<< getPtrSize( szHello ) << endl;
示例輸出
The size of a char is: 1
The length of Hello, world! is: 14
The size of the pointer is 4
當 sizeof 運算子應用到 class、struct 或 union 型別時,結果為該型別的物件中的位元組數,以及新增的用於在字邊界上對齊成員資料的任何填充。 結果不一定對應於透過將各個成員的儲存需求相加計算出的大小。 /Zp 編譯器選項和 pack 雜注會影響成員的對齊邊界。
sizeof 運算子永遠不會產生 0,即使對於空類也是如此。
sizeof 運算子不能用於以下運算元:
函式。 (但是,sizeof 可應用於指向函式的指標。)
位域。
未定義的類。
void 型別。
動態分配的陣列。
外部陣列。
不完整型別。
帶括號的不完整型別的名稱。
當 sizeof 運算子應用於引用時,結果與 sizeof 應用到物件本身時的結果相同。
如果某個未確定大小的陣列是結構的最後一個元素,則 sizeof 運算子將返回沒有該陣列的結構的大小。
sizeof 運算子通常用於透過使用以下形式的表示式計算陣列中的元素數量:
產生與 char 型別的大小有關的運算元大小。
說明
有關 sizeof ... 運算子的資訊,請參閱省略號和可變引數模板。
sizeof unary-expression sizeof ( type-name )
備註
sizeof 運算子的結果為 size_t 型別,它是包含檔案 STDDEF.H 中定義的整數型別。 利用此運算子,你可以避免在程式中指定依賴於計算機的資料大小。
sizeof 的運算元可以是下列項之一:
型別名稱。 若要將 sizeof 用於型別名稱,則該名稱必須用括號括起。
一個表示式。 當用於表示式時,無論是否使用括號都可指定 sizeof。 不計算表示式。
當 sizeof 運算子應用到 char 型別的物件時,它將生成 1。 當 sizeof 運算子應用到陣列時,它將產生該陣列的位元組總數,而非由陣列識別符號表示的指標的大小。 若要獲取由陣列識別符號表示的指標的大小,請將其作為引數傳遞給使用 sizeof 的函式。 例如:
示例
#include
using namespace std;
size_t getPtrSize( char *ptr )
{
return sizeof( ptr );
}
int main()
{
char szHello[] = "Hello, world!";
cout << "The size of a char is: "
<< sizeof( char )
<< "\nThe length of " << szHello << " is: "
<< sizeof szHello
<< "\nThe size of the pointer is "
<< getPtrSize( szHello ) << endl;
}
示例輸出
The size of a char is: 1
The length of Hello, world! is: 14
The size of the pointer is 4
當 sizeof 運算子應用到 class、struct 或 union 型別時,結果為該型別的物件中的位元組數,以及新增的用於在字邊界上對齊成員資料的任何填充。 結果不一定對應於透過將各個成員的儲存需求相加計算出的大小。 /Zp 編譯器選項和 pack 雜注會影響成員的對齊邊界。
sizeof 運算子永遠不會產生 0,即使對於空類也是如此。
sizeof 運算子不能用於以下運算元:
函式。 (但是,sizeof 可應用於指向函式的指標。)
位域。
未定義的類。
void 型別。
動態分配的陣列。
外部陣列。
不完整型別。
帶括號的不完整型別的名稱。
當 sizeof 運算子應用於引用時,結果與 sizeof 應用到物件本身時的結果相同。
如果某個未確定大小的陣列是結構的最後一個元素,則 sizeof 運算子將返回沒有該陣列的結構的大小。
sizeof 運算子通常用於透過使用以下形式的表示式計算陣列中的元素數量: