私のC++クラスでは、先生が私にこのコードを教えてくれました。今ポインタに関するサイズの理解
12647972 to 12647989
を印刷し
#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;
}
は、以前私は両方(size_t)(ptrNumber)
と(size_t)(ptrNumber+17)
は1を印刷し、どこが間違っているつもりだことを意味し、char型へのポインタのサイズは1つのバイトを持っているだろうと思いましたか?ありがとう。
これは 'sizeof'演算子ではなく、ポインタの値(メモリアドレス)を' size_t'という型にキャストしました(sizeofの戻り値の型です) – eavidan
あなたの出力の上にコメントがあります。 'Address最初と最後のインデックスの 'それはあなたが印刷しているものです。それは割り当ての要求ですか? – lakeweb
@lakeweb私はちょうどスライドからコードをコピーして貼り付けましたが、sizeofとsizeofを混同していたことが分かりました。 – IntegrateThis