問題一覧
1
関数の中で仮引数sumやdiffの値を変更しても、オリジナルの関数の値に影響は及ばない。①による引数の受け渡しが②だからである。
値渡し, 一方通行
2
住まいと動揺、場所を表すのが①である。①は②と呼ばれる。
番地, アドレス
3
オブジェクトの①は、記憶域上のどこに格納されているのかを表す②のことである
アドレス, 番地
4
オペランドのアドレス取得のために使っているのが、①と呼ばれる②である
アドレス演算子, 単項&演算子
5
①である&aは、aの②である。(aへの③を生成する)
単項&演算子, アドレス, ポインタ
6
オブジェクトのアドレスは、①で取り出せる
アドレス演算子&
7
変換指定の%pのpは①にゆらいする
pointer
8
1⃣の宣言(int *p = &n ;)では、型名と変数名の間に*が置かれている。この宣言によって、変数pの型は『①への②』となる。なお型名が長いため「③」あるいは「④」と呼ばれる。 与えられている初期化子が⑤であるため、pは変数nのアドレスで初期化される。
int型オブジェクト, ポインタ型, intへのポインタ型, int*型, &n
9
&演算子は「アドレスを取得する演算子」と考えてきたが、より正確に言うと「①」である。式&nは、nを指すポインタであり、その評価で得られるのが②である。
ポインタを生成する演算子, nのアドレス
10
*a は①と呼ばれる②である。ポインタに間接演算子*を適用した③は、そのポインタが指すオブジェクトそのものを表す式である。
間接演算子, 単項*演算子, 間接式
11
Type *型ポインタpがType型オブジェクトnを指すとき、①を適用した②*pは、nの③(別名)となる。
間接演算子*, 間接式, エイリアス
12
ポインタに間接演算子を適用することで、ポインタが指すオブジェクトを間接的にアクセスすることは①と呼ばれる。
参照外し
13
「*p = 999 ;」というコードからは、代入先は特定できない。アクセス先の決定が、プログラムのコンパイル時に①に行われるのではなく、プログラムの実行時にに②に行われるからである。
静的, 動的
14
オブジェクトを指すポインタと明確に区別可能な、何も指さないことが保証されている①と呼ばれる特別なポインタがある。①を表すオブジェクト形式マクロが②という名称の③である。、
空ポインタ, 空ポインタ定数, NULL
15
何も指さない特別なポインタが①であり、それを表すオブジェクト形式マクロ②は③である。
空ポインタ, NULL, 空ポインタ定数
16
空ポインタ定数NULLは①ヘッダで定義されている。
<stddef.h>
17
番地を表すポインタは、算術型とポインタ型をあわせて①と呼ぶ
スカラ型
18
①は、その配列の 先頭要素へのポインタ と解釈される
配列名
19
ポインタpが配列中の要素eを指すとき、 要素eのi個だけ①の要素を指す *(p+i)は②と表記でき、 要素eのi個だけ③の要素を指す *(p-i)は④と表記できる
後方, p[i], 前方, p[-i]
20
要素へのポインタ『p + i』は、①のことである
&a[i]
21
Type型配列aの先頭要素a[0]を、Type*型ポインタpが指すとき、ポインタpはあたかも①であるかのように振る舞う
配列aそのもの
22
配列の①は、先頭要素から何要素分だけ後方に位置するのかという②を表す値であり、必ず③から始まる
添字, オフセット, 0
23
①の②オペランドを配列とすることはできない
代入演算子, 左
24
関数間での配列の受け渡しは、①として行う。 呼び出された関数では、②が、呼び出し側が渡した配列そのものであるかのように振る舞う。 やり取りするのが、配列そのものではなく単なるポインタであるため、算術は別の引数として受け渡しする必要がある。
先頭要素へのポインタ, 受け取ったポインタ