答えて
はい、あなたはしかし、あなたが行うことができない、宣言で値へのポインタを初期化することができます。
int *p = &(1000);
&はオペレータのアドレスであり、あなたがすることはできませんそれを定数に適用してください(可能であれば、それは興味深いでしょう)。別の変数を使用してみてください:
int foo = 1000;
int *p = &foo;
またはタイプキャスト:
int *p = (int *)(1000); // or reinterpret_cast<>/static_cast<>/etc
うーん。私はあなたがそのような定数の非constアドレスを取ることができるとは思わない。
が、これは動作します:
int x = 3;
int *px = &x;
cout << *px; // prints 3
またはこの:
const int x = 3;
const int *px = &x;
const int *pfoo = reinterpret_cast<const int*>(47);
何について:
// Creates a pointer p to an integer initialized with value 1000.
int * p = new int(1000);
テストおよび作品を。 ;-)
しかし、削除することを忘れないでください! – GManNickG
質問には2つの不明点があります。ポインタを特定の値(つまりアドレス)に設定するか、ポインタを特定の変数に設定しますか?
後者の場合、address-of演算子を使用できます。ポインタの値は、のアドレスのsome_int_variable
に設定されます。
int *p = &some_int_variable;
*p = 10; // same as some_int_variable = 10;
注次は何を手動でポインタの値の邪悪な変化です。あなたがそれをしたいかどうかわからない場合、あなたはそれをしたくありません。コンパイラはint型を取り、アドレスとしてそれを解釈しませんので、前者の場合(すなわち、いくつかの特定の、指定されたアドレスに設定)で
、あなただけ
int *p = 1000;
を行うことはできません。
int *p = reinterpret_cast<int*>(1000);
今、ポインタはアドレスで、結果は実装定義されていることを1000注意をいくつかの整数を(うまくいけば)参照します:あなたはそれが明示的に行う必要があり、コンパイラに指示する必要があります。それにもかかわらず、それはセマンティクスであり、コンパイラにそのことを伝える方法です。
更新:委員会は、ノートで示唆された奇妙な振る舞いを修正しました。そのために私は回避策を提供しました。 See here。
- 1. OOPでポインターを初期化するC-lang
- 2. 初期化ポインターへのポインターへのポインターへのポインターへのポインターのポインタ
- 3. ポインターの配列へのポインターを持つ静的構造体の初期化
- 4. Cでメモリアロケータを初期化
- 5. C#アクセスでコンボボックスを初期化する
- 6. Cで変数を初期化する#
- 7. C#でGeneric.Listを初期化する
- 8. イテレータでベクトルを初期化するC++
- 9. C++ 11値初期化前に集約し、初期化する
- 10. C#初期化オブジェクト
- 11. C++リファレンス初期化
- 12. C++ローカル初期化?
- 13. 初期化(C#)と
- 14. C++の初期化
- 15. VECTOR初期化C++
- 16. スタティックC++マップの初期化エラーC2552:非集計を初期化リストで初期化できません。
- 17. C++ PPL - コンビネーションを初期化する
- 18. C++のベクトルクラスメンバを初期化する
- 19. フレキシブルアレイを初期化するC++
- 20. Objective-c:インスタンスを初期化するvar
- 21. リストを初期化するc#
- 22. C++クラスをグローバルに初期化する
- 23. C++ 11の値の初期化子とリストの初期化子
- 24. んC#コレクション初期化構文は、デフォルトの初期化オーバーヘッドに
- 25. ペアの初期化のC++ベクトル初期化 - コンパイルエラー
- 26. 初期化C++のstruct
- 27. C++ Sudokouグリッドの初期化
- 28. Cの初期化は、ポインタ
- 29. C++ 11クラス初期化エラー
- 30. C配列の初期化
絶対アドレス、つまり組み込みシステムに設定しようとしていますか?それは答えに大きな違いをもたらします。 –
確かに、あなたが探しているものを推測するのは難しいです...私はあなたがポインタ上で新しく、言葉の用語を混乱させると思います。誰もがどこかで始まらなければなりません。 :-) –