[英]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個字節。
首先,您必須記住arrays
和pointers
是不同的。
對於數組, 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.