ポインタへの配列風アクセスとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > ポインタへの配列風アクセスの意味・解説 

ポインタへの配列風アクセス

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/04 02:56 UTC 版)

糖衣構文」の記事における「ポインタへの配列風アクセス」の解説

C言語では、例えオフセット付きポインタをデリファレンスするような式 *(p + ofs) を、配列へのアクセス風に p[ofs] とも書ける。この糖衣構文は、見た目単純さだけではなく括弧の手前に書かれるものが先頭アドレス括弧の中がオフセットであるというように、コードの意味をより明確で分かりやすくもしている。また、C言語関数には配列そのもの引数として渡すことはできず、代わりに配列先頭要素へのポインタを渡すことで代替するが、例え関数宣言void func(double *x, size_t count)は、void func(double x[], size_t count)と書くこともできる後者引数として配列を渡すことを想定していることがより明確になる。なお、配列変数シンボルは、式の中では配列先頭要素へのポインタ解釈されるため、例え要素10固定長配列double a[10]の先頭要素へのポインタ関数func実引数として渡す場合に、func(&a[0], 10)と書けるだけでなく、func(a, 10)と書くこともできる一方で、これらの糖衣構文は、配列とポインタデータ構造としても文法要素としても異なるものである例えextern int *a; という宣言extern int a[]; という宣言とは、それぞれ違うものであるという事実を見失わせ、あらゆる場所で配列とポインタ可換であるというように誤った解釈混同をしてしまう要因にもなっている。 なお、前述の p[ofs] を ofs[p] のように書くこともできる。例え文字列リテラルインデックスアクセスする、整数値から十六進数表現を得るための、次のようなコード "0123456789abcdef"[n] の代わりに n["0123456789abcdef"] と書くこともできる後者構文的に問題はなく、全く同じ意味となる。

※この「ポインタへの配列風アクセス」の解説は、「糖衣構文」の解説の一部です。
「ポインタへの配列風アクセス」を含む「糖衣構文」の記事については、「糖衣構文」の概要を参照ください。

ウィキペディア小見出し辞書の「ポインタへの配列風アクセス」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「ポインタへの配列風アクセス」の関連用語

1
16% |||||

ポインタへの配列風アクセスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ポインタへの配列風アクセスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの糖衣構文 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2024 GRAS Group, Inc.RSS