画像(logo)

HOME/[C言語 入門]小学生でもわかるC言語2 目次/五日目 ポインタ2

広告

[C言語 入門 小学生でもわかるC言語2]
五日目 ポインタ2

広告

↓2016年02月29日発売↓

12歳からはじめる ゼロからのC言語 ゲームプログラミング教室

目次へ戻る

ポインタ

前回の続きです。

前回は変数に「&」アンパサンドをつけてアドレスを表示するトコロまでをやりました。

ポインタの役わりはアドレスを保存する事でしたね!

ではさっそく保存してみましょう!

/*五日目 プログラム1*/
#include <stdio.h>

int main(){
	int suji = 20;
	int *p;
	
	p = &suji;

	printf("変数「suji」は%x番地に保存されてます!\n",&suji);
	printf("ポインタ変数p = %x\n",p);

	return 0;
}

■実行結果■

画像(ce_5_1)

まずポインタ変数を使う場合は

int *p;

このように頭に「*」アスタリスクをつけるとポインタ変数になります。

計算の時の「×」の意味とはぜんぜん関係ないのでご注意ください。

今回は「int suji」のアドレスを保存するワケですが、この時の変数の型が「int」なのでポインタ変数の型も「int」に合わせなくてはいけません。

もちろん「char」型の変数だったらポインタ変数も「char」型にします。

次の行でポインタ変数「p」に変数「suji」のアドレスを保存してます。

p = &suji;

アドレスを表すときは「&」をつけるんでしたね。

そして実行結果を見てみると・・・。

どうやらきちんと保存されてるみたいですね!

変数「suji」のアドレスとポインタ変数「p」に保存したアドレスが同じになってる事が確認できたと思います。

間接的に

さきほどのプログラムでポインタ変数「p」には変数「suji」のアドレスが保存されました。

という事は!!!

このポインタ変数「p」の方から間接的に変数「suji」の値に触れていくことができるんですね!

このことを

直接変数「suji」から見ないで、こっそりポインタ変数「p」からみるので間接参照(かんせつさんしょう)って言います。

広告

間接参照

/*五日目 プログラム2*/
#include <stdio.h>

int main(){
	int suji = 20;
	int *p;
	
	p = &suji;

	printf("変数「suji」 = %d:アドレス = %x\n",suji,&suji);
	printf("%x番地に保存されてるデータ = %d\n",p,*p);

	return 0;
}

■実行結果■

画像(ce_5_2)

実行結果を見てみるとアドレスも同じだし、内容も同じだしどうやらうまくいったみたいです。

しかしながらプログラムを見てみるとちょっと理解しづらい部分があると思います。

「p」?、「*p」??

これはですね。何も考えず覚えるしかないです。

まずポインタ変数に保存されてるアドレスを見る時は

p

だけで大丈夫です。

そして間接的に中身を確認する時は

*p

頭に「*」アスタリスクをつけます。

ややこしいですがこれはもう覚えるしかないのでガマンしましょう!

では次に間接的に内容を変えてみましょう!

ポインタから内容を変える

/*五日目 プログラム3*/
#include <stdio.h>

int main(){
	int suji = 20;
	int *p;
	
	p = &suji;

	*p = 100;

	printf("suji = %d\n",suji);

	return 0;
}

■実行結果■

画像(ce_5_3)

内容を表すには「*」アスタリスクをつけるのでした。

そしてそのまま値を変えてみると・・・。

*p = 100;

元の変数の値も変わってます!

ポインタはややこしい

こんな感じでポインタはややこしいです。

ポインタ変数について

宣言する時は「*p」

アドレスを表示する時は「p」

内容を表示する時は「*p」

このあたりをきちんと理解しながら少しずつ先に進めましょう!

次回はポインタと配列の関係について見ていきたいと思います。

次回

六日目 ポインタ3

□ページの先頭へ□

□目次へ戻る□

□HOME□

広告

↓2017年06月16日発売↓

やさしいC 第5版 (「やさしい」シリーズ)

新品価格
¥2,700から
(2017/5/1 13:05時点)

↓2014年08月09日発売↓

新・明解C言語 入門編 (明解シリーズ)

新品価格
¥2,484から
(2017/5/1 13:08時点)

↓2016年02月20日発売↓

新・解きながら学ぶC言語

新品価格
¥2,160から
(2017/5/1 13:10時点)

↓2017年02月11日発売↓

C言語プログラミング基本例題88 88

新品価格
¥3,024から
(2017/5/1 13:12時点)

↓2016年12月15日発売↓

Cの絵本 第2版 C言語が好きになる新しい9つの扉

新品価格
¥1,490から
(2017/5/1 13:13時点)

↓2017年02月08日発売↓

新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ)

新品価格
¥2,700から
(2017/5/1 13:15時点)