ポインタ変数に別のポインタ変数のアドレスを保持させることはできますか?例えば:int a; int *ptr,*ptr1; ptr=&a; ptr1=&ptr;
Pointer変数は別のポインタ変数のアドレスを保持できますか?
答えて
確かに、ポインタへのポインタ。
int i;
int *pi = &i;
int **ppi = π
ポインタへのポインタに関して特に珍しいことはありません。これは他の変数と同じように変数であり、他の変数と同様に変数のアドレスを含みます。正しい型を設定するだけで、コンパイラはそれらと何をするべきかを知ることができます。
'ptr'と' ptr'はあなたの例では同じ名前なので、型の不一致( 'int **' vs 'int ***')がコードを無効にします。 –
そうです。これがコンパイラなしでコーディングするためのものです。一定。 –
はい、それは正しい型を持っている必要があります。あなたの例ではint *ptr,*ptr1;
ptr
とptr1
の両方が唯一int
、ないポインタを指すことができますタイプ「int
へのポインタ」を、持っています。あなたがint *ptr, **ptr1;
を宣言した場合、ptr1
は「int *
へのポインタ」と入力しているので、ptr
を指すことができます。
ポインタへのポインタは可能ですが(非常に一般的ですが)int*
は、別のint*
のアドレスを格納するのに十分なほど大きくない場合があります。 int**
を使用してください。 (またはvoid*
、一般的にポインタに)
サイズの問題ではありません。 'int *'は間違った型です。 –
は、ここでそれはint ***ptr
、int ****ptr
で同じ作品
int a = 13;
int *ptr,
int **ptr1; // ** means pointer to pointer
ptr = &a;
ptr1 = &ptr;
cout << a; //value of a
cout << *ptr; //ptr points to a, *ptr is value of a
cout << **ptr1; //same as above
cout << &ptr; //prints out the address of ptr
cout << *ptr1; //same as above
何が起こるかを示すサンプルです。
ここには2つの回答があり、両方ともはいです。 **、
int型のx = 2、Y = 3、* P = & X:
つのポインタは、あなたはまた、ポインタへのポインタを持つことができ、同じ場所
int b, *p1=&b, *p2=&b;
*p1 = 123;
*p2; // equals 123
を指すことができますq =&p;
余分なアスタリスクに注意してください。
**q; // equals 2
*q = &y;
**q; // equals 3
**q = 4;
y; // equals 4
はい、 PLSのは、次のコードを参照してください。私は
int a = 4;
int *ptr = &a;
int *ptr1 = (int*)&ptr;
cout << **(int**)ptr1;
それはあなたの目的を果たすことを願っています。ここPTR1は単一のポインタであるが、二重のポインタとして
- 1. ポインタとcoutのアドレス変数
- 2. stdベクトルはポインタと可変アドレスを保持します。掃除?
- 3. preg_replace_callback()は変数の要素を保持できますか?
- 4. 関数内のポインタはアドレスを変更しますが、ポインタの外は0x0
- 5. 別の変数の中に変数を含む数式を保持する
- 6. (u)intmax_tは関数ポインタを保持できますか?
- 7. オブジェクト変数を別の変数へのポインタにする
- 8. php変数は複数のデータ型を同時に保持できますか?
- 9. C++ - istreamsを保持できる変数?
- 10. 変数でできないポインタは何ができますか?
- 11. 変数はPythonのwhileループで以前の値を保持できますか?
- 12. 変数を別の変数に代入することはできますか?
- 13. TensorFlowはある変数_スコープ内の変数を保存できますか?
- 14. PthreadはCでポインタを持つ変数を共有します
- 15. なぜpythonはある変数から別の変数へのポインタを作成するのですか?
- 16. ページリロード - 変数の保持
- 17. std :: moveは変数のアドレスを変更しますか?
- 18. 整数の配列のアドレスを保持するポインタの宣言が必要
- 19. サス - 私は、この変数持つ別の変数
- 20. ポインタのNULL可能性をチェックする:!pointerまたはpointer == nullptr?
- 21. グローバル変数の関数へのポインタを保存したい
- 22. C#構造体変数の値を保持できません
- 23. プログラム中に変数の値を保持できません
- 24. カウント変数を持つポインタへのポインタのオフセット
- 25. JavaScriptのアドレスのような変数で、Cのポインタと似ています
- 26. は変数とポインタ
- 27. WebView saveState()はJavascriptの変数/環境を保持しますか?
- 28. railsのアセットパイプラインでSCSS変数を保持していますか?
- 29. 配列変数のアドレスと内容v C言語のポインタ
- 30. ポインター変数を解放した後でポインタ変数に以前のアドレスの新しいアドレスが格納されているのはなぜですか?
'int型** ptr'が何を意味するのに動作しますか? –
ポインタはアドレスを保持します。それが正しくタイプされているか(または何とかそれを偽造している)、ポインタは何が処理されているかを気にしません。ただし、ポインターはintなどではなく、ポインターを指定して入力する必要があります。 –
@HotLicks:これは一般的な実装では当てはまりますが、原則的にではなく公式言語ではありません。間違ったポインタ型を介してポインタをキャストして戻って同じ値を返すことは保証されません。実際には、特定のアラインメントの考慮事項などがあるマシンでは、そうでないかもしれません。あなたは本当に正しいポインタ型が必要です。あるいは、ポインタを安全に保持できる文字型ポインタまたは 'void'ポインタを使用することができます。 –