「C言語/配列とポインタ」の版間の差分
削除された内容 追加された内容
配列ポインタに対する加算 配列aの配列ポインタそのものに *pa+1 などの計算をしても、 それは決して先頭アドレス値に+1をしたものを意味せず、 *pa+1 はa[1]を意味します。 同様に*pa+2はa[2]を意味します。 |
→配列ポインタに対する加算: このように、ポインタ型やアドレスに対する加算は、通常の加算とは意味が異なります。 |
||
42 行
配列は必ず<code>a[i]</code>と<code>a[i+1]</code>とのアドレス間が等間隔なので、
もしコンパイラ開発者がこのような処理を実装しようとする
なので、配列要素をひとつひとつコピーする方式と比べればコピー回数を大幅に減らせるので、プログラマーはポインタ配列の活用
なお、<code>(&a[0]) +1</code>
このように、ポインタ型やアドレスに対する加算は、通常の加算とは意味が異なります。
;コード例
<syntaxhighlight lang=c>
#include <stdio.h>
|