スポンサードリンク

※配列要素(配列の長さ)
例:【 a[5]; 】と配列宣言すると、【 a[0] 】〜【 a[4] 】の変数が用意されます。この範囲を配列要素と言います。
※2、ポインタに対しては次の演算しだけが使用できることになっています。
【 + - ++ -- 】インクリメントやデクリメントの様な感じです。(こちらからサンプルを参照してみてください)

#include <stdio.h>
int main(void)
{
int ad[4] = {100, 200, 300, 400};
int *po;
po=&ad[0];
while (1) {
printf("ポインタ値=%d\n",*po);
if(*po == 400) break;
++po;
}
return 0;
}
解説
ポインタをインクリメントし、【 po=&a[0] 】に代入されたアドレスを一づつ後ろにたどって出力する事が出来ます。
配列a[0]〜a[3]までのアドレスが以下の用に確保されているとしますと
ポインタ【 po 】に【 a[0] 】のアドレスを代入し【 ++po 】で加算していくと、メモリアドレスをたどって出力されていく事になります。
メモリアドレス0 【 po 】 |
メモリアドレス4 【 po+1 】 |
メモリアドレス8 【 po+2 】 |
メモリアドレス12 【 po+3 】 |
a[0] | a[1] | a[2] | a[3] |
※2、無限ループに付いては左下メニューのこれまでのまとめをご参照お願い致します。

上記の実行結果です。


ポインタに配列アドレス【 a[3] 】のアドレスを代入して【 --po 】デクリメントしてみました。
※ループに付いては、【 a[3] 】から順番に出力されるので【 a[0] 】の初期値100での【 break 】終了としております。
#include <stdio.h>
int main(void)
{
int ad[4] = {100, 200, 300, 400};
int *po;
po=&ad[3];
while (1) {
printf("ポインタ値=%d\n",*po);
if(*po == 100) break;
--po;
}
return 0;
}
上記の出力結果です。

ポインタの加減算の説明は以上です
あかかげまるのC言語入門はこちら!!
スポンサードリンクパソコン勉強部屋 | パソコン勉強部屋2 | ADSL勉強部屋 | メール勉強部屋 | LAN勉強部屋 | ホームページ勉強部屋 | 自宅サーバー勉強部屋 | お役立ちソフトの部屋 | C言語勉強 | 無料ゲーム | 無料セキュリティー | Linuxのコーナー | あかかげまる | オンライン通販 | ショップブランドパソコン | DVDとCD編集ツール |
▲ページトップへ