1

今日は C のポンターの試験を受けましたが、次の構文が使用されているダブル ポインターに関する質問がありました。

*pointer = &variable;

私が正しく行ったかどうかはわかりませんが、ポインターがどこを指し、変数の値がどのように変化するかを誰かが説明できますか? 最初はsntax errorになると思っていたのですが、テストではそのような答えはありませんでした。前もって感謝します

4

4 に答える 4

1
// two int variables.
int var1;
int var2;

// int pointer pointing to var1
int *ptr = &var1;

// pointer to int pointer..pointing to ptr
int **ptr_to_ptr = &ptr;

// now lets make the pointer pointed to by ptr_to_ptr 
// point to var2
*ptr_to_ptr = &var2;

// or alternatively you can do:
// ptr = &var2;
于 2012-05-03T06:45:19.027 に答える
0

使用方法の例を次に示します。

int foo = 123;
int **bar = malloc(sizeof(int *));
*bar = &foo;

barは foo へのポインタへのポインタです。あまり意味がありません。

于 2012-05-03T06:41:44.253 に答える
0

pointerポインタへのポインタです。例えば、

    int var1=42;
    int* intptr;
    int** ptr2intPtr;
    ptr2intptr = &intptr;
//Syntax in question.
    *ptr2intptr = &var1; 
//Just like *intptr is same as var1, *ptr2intptr is same as intptr
//so the above line will be equivalent to intptr = &var1
    //All the three are the same
    printf("%d",**ptr2intptr);
    printf("%d",*intptr);
    printf("%d",var1);
于 2012-05-03T06:43:45.943 に答える
0

ポインタが次のように初期化されている場合:

int *pointer;
int variable = 10;

pointer = malloc(sizeof(int));
*pointer = &variable;

*pointer = &variable変数のアドレスが指示先の値として設定されることを意味します。は逆参照であるため*pointer、基本的には参照を設定せずに値を格納しています。

于 2012-05-03T06:38:56.557 に答える