ポインターを割り当てるための 2 つのオプションが表示されます
1.
int p=5;
int *r=&p
2.
int p
int *r;
r=&p;
なぜアスタリスク付きの in 1 とアスタリスクなしの in two を使用するのですか?
あなたはこれを読むべきです:
int *r [...]
なので:
(int *) r [...]
のタイプはr
ですint *
。そのように見ると、両方のバージョンが同一であることがわかります。
2つの選択肢は実際には同じです。1つ目は、テキストが少ないことです。
アスタリスクは、のような宣言で使用される場合、変数がポインターint *r
であることをコンパイラーに通知します。r
ケース2 int *r
:;への初期化されていないポインタの宣言int
です。r = &p
ポインタに値を設定する割り当てです。
ケース1:は、のアドレスで初期化int *r=&p
されるポインタの宣言です。int
p
2番目はまったく同じです。最初の例では、変数を宣言し、一度に値を割り当てます。宣言部分には、が必要です。*
これは、この変数がint値へのポインターを格納することを指定しているためです。変数はすでにポインタとして宣言されているので、値の割り当て部分はこの種のものを必要としません。r