[英]c++: what is int[3] in sizeof(int[3])
這是我的示例:
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int ar[][3] = {1, 2, 3, 4, 5, 6, 7};
//cout << int[3]<<endl; // error C2062: type 'int' unexpected.
cout << "sizeof(ar) / sizeof(int[3]) "<< sizeof(ar) / sizeof(int[3]) << endl;;
system("pause");
return 0;
}
它來自一本書,盡管沒有給出解釋。 這里的int [3]是什么,為什么在這種情況下它僅作為sizeof的參數起作用?
int[3]
是一個類型聲明,表示三個整數的數組。
您注釋的代碼給出了錯誤,因為您不能將類型用作變量。
sizeof(int[3])
是三個整數組成的數組的大小(以字節為單位)。 sizeof
不是在程序運行時調用的實際函數,而是在編譯時解析的。 sizeof(ar) / sizeof(int[3])
將為您提供數組中的行數,因為每行的長度為3個整數(您將其聲明為int ar[][3]
)。
報關單
int ar[][3] = {1, 2, 3, 4, 5, 6, 7};
用於整數的三元組數組-它是2D數組。
表達式的大小
cout << "sizeof(ar) / sizeof(int[3]) "<< sizeof(ar) / sizeof(int[3]) << endl;
打印您得到的完整三胞胎的數量。 最后一個整數7將不屬於任何三元組。 您應該看到2打印。 ar[0]
將包含{1, 2, 3}
而ar[1]
將包含{4, 5, 6}
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.