「C言語/配列とポインタ」の版間の差分
削除された内容 追加された内容
Toya shiwasu (トーク | 投稿記録) 書きかけであることを表示 |
Toya shiwasu (トーク | 投稿記録) C言語/ポインタから「ポインタの演算」を移動 |
||
18 行
「*配列の識別子」と「配列の識別子[0]」は同じ
</pre>
=== ポインタの演算 ===
ポインタは、4つの算術演算子(+, ++, -, --)を使って、
整数を加算減算することができる。
ポインタをインクリメント(++)すると、
ポインタはポインタのデータ型に従って、
現在指している変数の次の変数のメモリアドレスを指す。
すなわち、ポインタのメモリアドレスに、
ポインタのデータ型のサイズ(sizeof *ポインタ名)だけ加算される。
ポインタが指している変数には、
ポインタを使って、
普通の変数と同様に演算ができる。
ただし、演算の優先順位には注意が必要である。
<source lang=c>
*p++;
</source>
上の記述では、pをインクリメントし、
そのメモリアドレスにある値を返す。
<source lang=c>
(*p)++;
</source>
上の記述では、pのメモリアドレスにある値をインクリメントする。
ポインタの演算は、ポインタが配列を指す場合によく使われる。
=== 1次元配列を指すポインタ ===
|