ポインタ変数の宣言は、
のように宣言します。*(アスタリスク、asterisk)をつけるところがこれまでと異なります。この例では、整数型へのポインタ変数の宣言となります。ip は、変数名です。
ポインタ変数は、番地を格納する変数のため通常の値は代入することはできません。例えば、以下のように用います。

# include <stdio.h>
int main()
{
int a = 123;
int *ip;
ip = &a;
return 0;
}
上のプログラムでは、整数型変数a に 123 を代入して、その番地(&a) を整数型へのポインタ ip に代入しています。変数のアドレスをしめす& 演算子を用いています。
宣言でない文の中で、*ip のように参照することでポインタの指している先の値を示すことができます。
# include <stdio.h>
int main()
{
int a = 123;
int *ip;
ip = &a;
printf("%d and %d\n", a, *ip);
return 0;
}
以下のように、配列を宣言し、配列名であるaをポインタ変数として扱うことができます。そのため、ip = a; と代入することができます。
# include <stdio.h>
int main()
{
int a[ ] = { 453, 34, 876, 2345, 89 };
int *ip;
ip = a;
printf("%d and %d\n", a[0], *ip);
ip++;
printf("%d and %d\n", a[1], *ip);
return 0;
}
ポインタ変数への参照は、*ip として用います。