###前提・実現したいこと
現在C++の入門書で学習しているずぶの素人です。一つのアドレスを複数のポインタで指しているんですけど、いざ入ってる値を出力してみると違う値が出ます。とりあえずソースコードと出力結果を見てみてください。
何故このような出力結果が出るのか知りたいだけです。
気軽に解答してください(´・ω・`)
###該当のソースコード
C++
1#include "iostream" 2 3int main(int argc, char const *argv[]) { 4 const int a = 1; 5 const int *p = &a; 6 int *pp = const_cast<int *>(p); 7 *pp = 2; 8 std::cout << "&a = " << &a << '\n'; 9 std::cout << "p = " << p << '\n'; 10 std::cout << "pp = " << pp << '\n'; 11 std::cout << "a = " << a << '\n'; 12 std::cout << "*p = " << *p << '\n'; 13 std::cout << "*pp = " << *pp << '\n'; 14 return 0; 15}
###出力結果
&a = 0x7ffd839e1064
p = 0x7ffd839e1064
pp = 0x7ffd839e1064 //同じアドレスを指しているはず・・・
a = 1 //constのせいで頑なに変わろうとしないのか?
*p = 2
*pp = 2
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/07 23:20