ポインタ
ポインタ(pointer)
たいだいC言語、C++で使われるポインタについて
関数や変数は仮想アドレス空間上の領域なので、当然それぞれにアドレスがあります。何らかのアドレスを記憶する変数はポインタ(pointer)と呼ばれます。
アドレスはメモリ上の番地のこと
ポインタはポインタ変数のこと
ポインタと言われるとどうも頭に入ってこないのでポインタ変数と限定する呼び方がいいのかもしれない
ポインタ変数(pointer variable)
アドレスを記憶するための変数
ポインタ型(pointer type)
変数宣言時にint *、long *というような*付きの宣言をしたポインタ変数の型
関連:
ポインタの大まかな使い方
code:pointer.c
void sample1() {
int x = 10;
// ポインタ変数
// 型名 *変数名
// "*"をつけるとポインタ変数?
int *p;
// xのアドレスを代入
// "&"はアドレス演算子で変数のアドレスを取得できる
p = &x;
// pの参照先のxの値を書き換える
// "*"は関節演算子
*p = 15;
printf("x = %d\n", x);
// %pでアドレスを16進数で表示
// "&"を使用してアドレスのprintfに渡す
printf("&x = %p\n", &x);
printf("p = %p\n", p);
// "*"を使用してアドレスの指し示す値をprintfに渡す
printf("*p = %d\n", *p);
// イメージとしてはアドレスからアドレスにキャストするので結果は変わらない
printf("&p = %p\n", &p);
}
int main() {
sapmle1();
}
code:memo
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 398 0 398 0 0 563 0 --:--:-- --:--:-- --:--:-- 562
x = 15
&x = 0x7fff20790dac
p = 0x7fff20790dac
*p = 15
&p = 0x7fff20790db0
確認用
Q. ポインタ
Q. ポインタ型
Q. ポインタを使うと何ができるか
Q. なぜポインタがあるか
Q. ダブルポインタ
関連
参考
メモ
調査用
/pogi-log/Wikipedia.icon
/pogi-log/Wikipedia.icon