C言語 入門 小学生でもわかるC言語2

五日目 ポインタ2

「わかりやすく!」がテーマです!

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

広告

↓2016年02月29日発売↓

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

新品価格
¥2,462から
(2016/5/10 22:16時点)

もっと!C、C++言語本

目次へ戻る

?と思ったら

わからなそうな用語集

ポインタ2

前回の続きです。

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

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

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

/*プログラム16*/
#include <stdio.h>

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

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

	return 0;
}

■実行結果■

実行結果(e-5-1)

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

int *p;

このように頭に「*」アスタリスクをつけるとポインタ変数になります。そして両方の変数の型を「int」だったら「int」、「char」だったら「char」と合わせなくてはいけません。

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

p = &suji;

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

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

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

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

間接的に

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

という事は!!!

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

このことを

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

間接参照

/*プログラム17*/
#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;
}

■実行結果■

実行結果(e-5-2)

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

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

「p」?、「*p」??

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

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

p

だけで大丈夫です。

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

*p

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

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

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

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

/*プログラム18*/
#include <stdio.h>

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

	*p = 100;

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

	return 0;
}

■実行結果■

実行結果(e-5-3)

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

*p = 100;

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

suji = 100

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

ポインタはややこしい

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

ポインタ変数について

宣言する時は「*p」

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

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

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

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

次回

六日目 ポインタ3

□ページの先頭へ□

□目次へ戻る□

広告

↓2014年06月20日発売↓

14歳からはじめるC言語わくわくゲームプログラミング教室 Visual Studio 2013編

新品価格
¥2,500から
(2016/5/10 22:17時点)

↓2014年10月25日発売↓

超本格! サンプルで覚えるC言語 3Dゲームプログラミング教室

新品価格
¥3,110から
(2016/5/10 22:18時点)

↓2013年07月25日発売↓

小学生からはじめるわくわくプログラミング

新品価格
¥2,052から
(2016/5/10 22:21時点)

↓2016年05月13日発売↓

小学生からはじめるわくわくプログラミング2

新品価格
¥2,052から
(2016/5/10 22:22時点)

もっと!C、C++言語本