#include <iostream>
int main()
{
int anything[] = {5};
int *something = new int;
*something = 5;
std::cout << &anything << "==" << &anything[0] << "==" << anything << std::endl;
std::cout << &something << "!=" << &something[0] << "==" << something << std::endl;
}
なぜ&something[0]
とsomething
異なる&something
のメモリアドレス?動的割り当てではありますが、メモリアドレスが異なる理由はわかりません。私は複数の価値を持って試しました。それは同じことです。ここでは、単純化のために両方に1つの値を使用しました。メモリアドレス
しかし、何かもポインタですか?例えば、もし私が&と何かを(とにかく)変えれば、それは等しくなり、最初のポインタ自体のメモリアドレスは&anything [0]と何かに等しくなります。動的割り当てでは、何か、なぜポインタ自体が異なるメモリアドレスを持っていますか? – Daniel
いいえ。 'anything'は配列であり、ポインタではありません。多くの、ただしすべてではないコンテキストでは、 'array'への参照はポインタに相当します。違いがある文脈の1つは、(単項)の '&'のオペランドです。 –