簡體   English   中英

C ++:sizeof(int [3])中的int [3]是什么

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM