簡體   English   中英

我不明白數組的sizeof()給定的值

[英]I don't understand value given with sizeof() with Arrays

在此代碼段中,我得到的輸出為24。為什么?

int data[] = { 5, 6, 7, 1, 4, 0 };

int n = sizeof(data);

cout << n << endl;

sizeof返回24,因為您有6個整數,每個整數占用4個字節。

首先,您必須記住arrayspointers是不同的。

對於數組, sizeof()返回整個數組的大小,在您的示例中為24個字節,因為您有6個int元素,每個元素為4個字節。

現在看下面的代碼片段:

int *data = { 5, 6, 7, 1, 4, 0 };
int n = sizeof(data);

在這種情況下, sizeof()將返回指針的大小,而不是數組的大小。 指針在32位應用程序中為4個字節,在64位應用程序中為8個字節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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