画像(logo)

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

広告

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

広告

↓発売日:2018年09月22日↓

たった1日で基本が身に付く! C言語 超入門

新品価格
¥2,225から
(2018/10/8 23:10時点)

目次へ戻る

ポインタ

前回の続きです。

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

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

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

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

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

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

	return 0;
}

■実行結果■

画像(ce_5_1)

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

int* p;

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

(※昔のC言語ではint *pのように変数の方に*をつけていたのですが、新しいC言語ではintやcharの方に*をつけるのが慣例なので当サイトも新しい方に合わせていきたいと思います。)

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

今回は「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:アドレス = %p\n",suji,&suji);
	printf("%p番地に保存されてるデータ = %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;

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

ポインタはややこしい

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

ポインタ変数について

宣言する時は「int* p」

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

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

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

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

次回

六日目 ポインタ3

□ページの先頭へ□

□目次へ戻る□

□HOME□

広告

↓発売日:2016年02月29日↓

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

新品価格
¥2,462から
(2018/10/8 23:25時点)

↓発売日:2018年06月22日↓

スッキリわかるC言語入門

新品価格
¥2,916から
(2018/10/8 23:15時点)

↓発売日:2018年03月09日↓

C言語本格入門 ~基礎知識からコンピュータの本質まで

新品価格
¥3,218から
(2018/10/8 23:16時点)

↓発売日:2017年06月14日↓

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

新品価格
¥2,700から
(2018/10/8 23:17時点)

↓発売日:2018年05月21日↓

作って身につく C言語入門

新品価格
¥2,462から
(2018/10/8 23:18時点)

↓発売日:2017年12月07日↓

新・標準プログラマーズライブラリ C言語 ポインタ完全制覇

新品価格
¥2,678から
(2018/10/8 23:19時点)

↓発売日:2017年02月08日↓

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

新品価格
¥2,700から
(2018/10/8 23:20時点)

↓発売日:2017年09月26日↓

かんたん C言語 [改訂2版] (プログラミングの教科書)

新品価格
¥2,916から
(2018/10/8 23:22時点)