[解決済み] 配列の場合、なぜ a[5] == 5[a] になるのでしょうか?
2022-03-15 18:21:39
疑問点
でJoelが指摘しているように
スタックオーバーフローポッドキャスト#34
である。
C言語
(aka: K & R) の中で、C言語の配列のこの性質について言及されています。
a[5] == 5[a]
Joelはポインタ演算のせいだと言っているが、まだ理解できない。
なぜ
a[5] == 5[a]
?
解決方法は?
C言語規格では
[]
演算子は次のようになります。
a[b] == *(a + b)
したがって
a[5]
と評価されます。
*(a + 5)
と
5[a]
が評価されます。
*(5 + a)
a
は配列の最初の要素へのポインタです.
a[5]
は、その値が5
要素
からさらに
a
と同じである。
*(a + 5)
であり、小学校の算数でこれらは等しいことが分かっています(足し算は
可換
).
関連
-
Cエラー [エラー] 代入_Ashesの左オペランドにlvalueが必要です-プログラマーズ・シークレット
-
[解決済み] stdinとSTDIN_FILENOの違いは何ですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] mallocの結果はキャストするのですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] 簡単な面接問題が難しくなった:1~100の数字が与えられたとき、ちょうどk個の数字が欠けていることを見つけなさい。
-
[解決済み] 難読化Cコードコンテスト2006。sykes2.cの解説をお願いします。
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】JavaScriptで2つの配列を結合し、項目の重複を排除する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
構造体の配列--[エラー] '['トークンの前に一次式があることが予想される
-
VSCodeでCプログラムを書くとエラーになる:ソースファイル "stdio.h" を開くことができない
-
Solve Dev-c++ [エラー] 'for' ループの初期宣言は、C99 または C11 モードでのみ許可されます。
-
error: 'for' loop initial declaration is only allowed in C99 mode 原因と解決方法
-
initializer element is not constant "というエラーが表示されるのですが?
-
C/C++の再定義
-
エラー: 宣言されていない識別子 'bool' の使用と C コンパイラでの問題点
-
[解決済み] Windows用Cコンパイラ?[クローズド]
-
[解決済み] Linuxカーネルにおけるcontainer_ofマクロの理解
-
[解決済み] プログラム終了前にmallocの後にfreeをしないと本当に何が起こるのか?