身につくC言語-16回目 ポインタとは その1-

アドレスに続けてポインタというものを扱います。

 

アドレスとポインタというのは密接な関係があります。

 

ポインタとは

 

一言で表すと

 

アドレスを示す

 

要素です。

 

これを使用すると以前まではできなかったアドレスの代入というのができるようになります。

 


#include<stdio.h>

int main(void)
{
	int a;
	
	printf("aのアドレスは%pです。\n",&a);
	
	return 0;
}
	

 

これが前回までのアドレスの出力です。

 

これにポインタを使って、aのアドレスを出力しましょう。

 


#include<stdio.h>

int main(void)
{
	int a;
	int *b;
	
	b=&a;
	
	printf("aの値は%pです。\n",b);
	
	return 0;
}
	

 

ここで注目するところは

 

int *b

 

というところです。

 

ポインタを宣言するときは「*」を変数名の前につける必要があります。

 

ポインタは

 

アドレスを示す

 

要素ということでしたね。

 

b=&aとすることで(ただしbはint *型)アドレスとポインタの関係がつながりました。

 

練習問題

変数numを宣言して、そのアドレスを*aと関係を持たせて出力しなさい


#include<stdio.h>
int main(void)
{
	int num;
	int *a;
	
	a=&num;
	
	printf("%p\n",a);
	
	return 0;
}

まとめ

たぶんここら辺が一番理解しにくいところだと思います。

 

しかし、ポインタの概念は「関数の引数」などでも使用しますので覚えておくようにしましょう。

 

ポインタはアドレスを示す

 

ということと

 

ポインタの宣言は、変数名に前に「*」をつける

 

ということを覚えていれば今回は十分です。