C言語>ポインタ1
C言語で最大の難関と言われるポインタです。
使用方法
[[データ型]] *変数名;
変数前に*(アスタリスク)をつけることでポインタを指します。
例文
//================================================
//include
//================================================
#include <stdio.h>
//================================================
//メイン関数
//================================================
int main(void)
{
int a = 1;
int *p;
p = &a;//ポインタにアドレスを入れる
[[printf]]("aの変数のアドレスは%p\n", &a);
printf("aの変数内の数値は%d\n", a);
printf("pの変数のアドレスは%p\n", p);
printf("pの変数内の数値は%d", *p);
return 0;
}
実行結果

解説
int *p;
pという名前のポインタを宣言しています。
p = &a;
ポインタのアドレスを代入しています。
printf("aの変数のアドレスは%p\n", &a);
%pはアドレスを表示させるものです。
そして、アドレスを示すので変数の前に&をつけています。
そして、アドレスを示すので変数の前に&をつけています。
printf("pの変数のアドレスは%p\n", p);
printf("pの変数内の数値は%d", *p);
ポインタにアドレスを入れた場合は、数値とアドレスを
見る方法が変わります。
アドレスの場合は、前に何も付けずに、
数値の場合は、*を付けています。
見る方法が変わります。
アドレスの場合は、前に何も付けずに、
数値の場合は、*を付けています。
ややこしいので、少し表にしてみました。
| 普通の変数の場合 | 数値 | 何も付けない | アドレス | 前に& |
| ポインタの場合 | 数値 | 前に* | アドレス | 何も付けない |
<C言語に戻る
添付ファイル