3

与えられた:

int **a; // (double pointer)
int *b;  //  (pointer)

と の間に違いは*a=bありa=&bますか?

4

6 に答える 6

6

1 つ目は、変数の値をポイント先の場所に*a = b;コピーします。ba

2 番目は、 のアドレスを にコピーa = &bします。ba

于 2012-10-22T18:10:27.730 に答える
2
*a = b;

指しているb場所に値を割り当てています。a

a = &b;

ここでは のアドレスを割り当てていbますa

于 2012-10-22T18:11:04.423 に答える
1

*a = bが指しているbメモリ内の場所への割り当てa

a = &bのアドレスをb変数に割り当てますa

于 2012-10-22T18:11:04.720 に答える
1

&変数のアドレスを取得するのは演算子です

*ポインターが指す値を取得できる演算子であり、このプロセスを呼び出す必要がある間接化です。

はい、この2つのステートメントは異なります。

于 2012-10-22T18:11:30.507 に答える
0

ここでの問題は、実際にはこの 2 つの違いは何かということだと思います。次の例は、これを示しています。

int x = 10;
int *y;
int *z;

y = &x;
*z = x;

printf("x: %d, *y: %d, *z: %d\n", x, *y, *z);

x = 20;

printf("x: %d, *y: %d, *z: %d\n", x, *y, *z);

z が指す値は 20 の新しい x 値に更新されませんが、y が指す値は更新されます。

于 2016-06-17T11:49:30.643 に答える