[解決済み] ポインタとポインタの明確化
2022-05-14 18:23:23
質問
私はこの チュートリアル がどのように ポインタ はどのように機能するのでしょうか。
関連する一節を引用します。
int i = 5, j = 6, k = 7; int *ip1 = &i, *ip2 = &j;
これで
int **ipp = &ip1;
と
ipp
はip1
を指し、その先はi
.*ipp
はip1
であり、かつ**ipp
はi
または5である。この状況を、おなじみの箱と矢印の記法を使って、次のように説明することができます。
もし私たちが
*ipp = ip2;
で指されるポインタを変更しました。
ipp
(つまりip1
) のコピーを含むようにip2
を含むように、それ(ip1
) を指すようになりました。j
:<イグ
質問です:なぜ2枚目の写真では
ipp
を指しているのでしょうか?
ip1
を指しているが
ip2
?
どのように解決するのですか?
ポインティングのアナロジーのことは少し忘れてください。 ポインタが実際に含むものは、メモリ アドレスです。 その
&
は "address of" 演算子で、つまり、オブジェクトのメモリ上のアドレスを返します。 つまり、オブジェクトのメモリ上のアドレスを返します。
*
演算子はポインタが参照するオブジェクトを返します。つまり、あるアドレスを含むポインタが与えられると、そのメモリアドレスにあるオブジェクトを返します。 ですから
*ipp = ip2
とするとき、あなたがやっていることは
*ipp
で保持されているアドレスのオブジェクトを取得することです。
ipp
である
ip1
に代入し、さらに
ip1
に格納されている値を
ip2
のアドレスである
j
.
単に
&
--の住所です。
*
--での値です。
関連
-
[解決済み] 型付けされた関数ポインタ?
-
[解決済み] char *とchar[]の違い [重複]
-
[解決済み] スマートポインターとは何ですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] 配列の場合、なぜ a[5] == 5[a] になるのでしょうか?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み] ポインタの「デリファレンス」とはどういう意味ですか?
-
[解決済み] C 言語の配列へのポインタ/ポインタの配列の曖昧さ解消
-
[解決済み] 配列からポインタへの減衰とは何ですか?
-
[解決済み] sizeof'(配列を指すポインタ)を見つけるにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
error: '.' トークンの前にunqualified-idを指定する必要があります。
-
関数 'malloc' の暗黙の宣言に対する解決策
-
警告:符号付き整数式と符号なし整数式の比較 [-Wsign-compare]
-
[解決済み] C言語で**は何をするのですか?[重複しています]
-
[解決済み] ソケットアクセプト - "開かれているファイルが多すぎる"
-
[解決済み] C言語でランダムなint型を生成するには?
-
[解決済み] char s[]とchar *sの違いは何ですか?
-
[解決済み] C言語でオブジェクト指向のコードを書くとしたら、どのようにすればよいのでしょうか?[クローズド]
-
[解決済み] C言語でファイルが存在するかどうかを確認する最も良い方法は何ですか?
-
[解決済み] なぜC言語では構造体を頻繁にtypedefする必要があるのですか?