ptr, ptr2 自体は異なる変数なので、 &ptr, &ptr2 の値は異なるものになります。
次のプログラムと、その実行結果は理解できますでしょうか?
c++
1using namespace std;
2
3int main(int argc, char** argv) {
4 int number;
5 int *ptr = new int();
6 ptr = &number;
7 cout << *ptr << " " << ptr << " " << &ptr << endl;
8
9 int *const ptr2 = &number;
10 cout << *ptr2 << " " << ptr2 << " " << &ptr2 << endl;
11
12 number = 11;
13 cout << *ptr << " " << *ptr2 << " " << number << endl;
14
15 *ptr = 12;
16 cout << *ptr << " " << *ptr2 << " " << number << endl;
17
18 *ptr2 = 13;
19 cout << *ptr << " " << *ptr2 << " " << number << endl;
20
21 ptr++; // これはエラーにならない
22 // ptr2++; // const なのでコンパイル時にエラーになる
23 return 0;
24}
実行結果:
$ ./a.out
32767 0x7fff5d3d08cc 0x7fff5d3d08c0
32767 0x7fff5d3d08cc 0x7fff5d3d08b8
11 11 11
12 12 12
13 13 13
prt, ptr2 の値設定は質問文にあるもの同等です。
↑のプログラムでは, number の値を変更、 *ptr の値を変更、 *prt2 の値を変更
をした後に、 *prt, *ptr2, number の値を cout で表示しています。
ptr, ptr2 はどちらも number のアドレスを指していることが実行結果の末尾3行からも確認ができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。