「C言語/配列とポインタ」の版間の差分
削除された内容 追加された内容
タグ: 2017年版ソースエディター |
→配列とポインターの基本: 「式の中では、配列は「その先頭要素へのポインター」に読み替えられる」わけではなく、アドレス式の文脈に限って先頭要素のアドレスに等しい。またポインターとアドレスを混同している。 タグ: 2017年版ソースエディター |
||
3 行
配列とポインターには密接な関係がある。
# 配列変数の名前は、アドレス式の文脈では先頭要素のアドレスに等しい。
# 配列変数の名前に sizeof 演算子を適用すると、 sizeof( 要素型 ) * 要素数が返る(単一の要素型のサイズではなく全体のサイズ)。
# Cでは、配列変数の名前は(Fortranの様に)代入の右辺には出来ない。
#: このため strcpy():番人型、memcpy():サイズ型の標準ライブラリー関数が用意されている。
また、p[i]は*(p+i)の[[W:糖衣構文|糖衣構文]]である<ref>p[i] ⇒ *(p+i) ⇒ *(i+p) ⇒ i[p] との交換則が成り立ち、難読化プログラミングでしばしば用いられる。<br>C言語のほかの糖衣構文]としては、 p->m ⇒ (*p).m があげられる。</ref>。
|