ポインタ
ポインタ(pointer)
たいだいC言語、C++で使われるポインタについて
ポインタはポインタ変数のこと?
ポインタと言われると何のことを言われているかイメージが湧かないので、ポインタ変数と限定する呼び方がいいのかもしれない?
ポインタ変数(pointer variable)
アドレスを記憶するための変数
アドレスはメモリ上の番地のこと
int *p;の変数pはポインタ変数
ポインタ型(pointer type)
ポインタ変数の型について言いたいときはポインタ型?
変数宣言時にint *x、long *xというような*付きの宣言をしたものポインタ型
関数や変数は仮想アドレス空間上の領域なので、当然それぞれにアドレスがあります。何らかのアドレスを記憶する変数はポインタ(pointer)と呼ばれます。
ref: ポインタ - 本物のC
関連:
Cのアドレス演算子(&)、間接演算子(*)
ポインタの大まかな使い方
code:pointer.c
#include <stdio.h>
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();
}
$ curl -O https://scrapbox.io/api/code/pogi-log/%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF/pointer.c && gcc -Wall -Wextra pointer.c && ./a.out
code:memo
curl -O https://scrapbox.io/api/code/pogi-log/%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF/pointer.c && gcc -Wall -Wextra pointer.c && ./a.out
% 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
C言語 配列
C言語 文字列操作
ポインタから整数への変換、整数からポインタへの変換
関数ポインタ
スマートポインタ
ダングリングポインタ
参照渡し
確認用
Q. ポインタ
Q. ポインタ型
Q. ポインタを使うと何ができるか
Q. なぜポインタがあるか
Q. ダブルポインタ
関連
線形メモリ
ワード(メモリ)
アドレス空間
C言語 配列
C規格
参考
ポインタ変数を使ってみる - 苦しんで覚えるC言語
ポインタ - 本物のC
メモ
ポインタ(pointer)
ポインタ - 初心者のためのポイント学習C言語
C言語のポインタ構文のつまづきどころ #C - Qiita
POINTER
ほぷしぃ-納得C言語-【第13回】ポインタ
メモリの仕組み - 苦しんで覚えるC言語
調査用
/pogi-log/Google.icon ポインタ(日)
/pogi-log/Google.icon pointer(英)
/pogi-log/Wikipedia.icon
ポインタ - Wikipedia(日)
ポインタ(検索) - Wikipedia(日)
/pogi-log/Wikipedia.icon
pointer - Wikipedia(英)
pointer(検索) - Wikipedia(英)
#メモリ
#C/C++