なぜこの2行で異なるアドレスが出力されるのですか?C++のvector.begin()とvector [0]
vector<int> v1{ 12,2,34 };
printf_s("%d - 0x%p\n", v1[0], &v1[0]);
printf_s("%d - 0x%p\n",*v1.begin(), v1.begin());
このアドレスの値は同じですが、アドレス自体は異なります。 同じ配列のコピーが2つあることを意味しますか?
EDIT:デバッグモードでは、異なるアドレスを出力し、リリースモードで同じアドレスがある:)
「&(* v1.begin()」と「&v1 [0]」は同じアドレスを出力します。 –
@ Person.Junkieしかし、これはあなたの質問と同じではありません。 – deviantfan