在我的C++類中,我的老師給了我這個代碼。瞭解與指針相關的sizeof
#include <iostream>
using std::cout;
using std::endl;
int main()
{
char numbers[]{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17 };
char *ptrNumber;
ptrNumber = &numbers[0];
// Address of first and last index
cout << (size_t)(ptrNumber) << " to " << (size_t)(ptrNumber + 17) << endl;
}
它打印
12647972 to 12647989
現在我以前認爲一個指向字符的大小,將有1個字節,它意味着:(size_t)(ptrNumber)
和(size_t)(ptrNumber+17)
將打印1.我要去哪裏錯了?謝謝。
這不是'sizeof'運算符,您只是將指針的值(內存地址)轉換爲名爲'size_t'的類型(這是sizeof的返回類型) – eavidan
您在輸出'Address第一個和最後一個索引「,這就是你正在打印的內容。這是轉讓的要求嗎? – lakeweb
@lakeweb我剛剛複製並粘貼了幻燈片中的代碼,但現在我明白了我對sizeof與size_t – IntegrateThis