1

二重ポインタを研究するとき、一般的なコンセンサスは、変数の値を変更し、関数から戻るときに新しい値を保持したい場合であり、そのポインタ値を渡す必要があるようです.

既にポインターを使用している場合は、ダブル ポインターを渡す必要があります。

次の例では、コードのメイン部分でポインターを処理し、同じポインターを関数に渡し、その値を変更して、新しい値をメインに表示します。

私が読んだことに基づいて、ダブルポインターが必要である必要がありました。そうしないと、メイン内に新しい値が表示されません。

これが機能する場合、二重ポインターが必要であることを示すためにどのように変更できますか?

void func1(int *z)
{
(*z)++;
printf("z=%d\n", *z);
}   


int _tmain(int argc, _TCHAR* argv[])
{

int x = 100;
int *y = &x;
printf("y=%d\n", *y);
func1(y);
printf("y=%d\n", *y);
return 0;
}
4

5 に答える 5

0

ポインタは単純です。一種の住所と考えてください。

箱あります。この箱には1-101と書かれたナンバープレートが付いています。

ボックスが変数、ナンバープレートがポインター、1-101 が実際のアドレス (抽象概念) です。

私はあなたにその箱を渡し、あなたはそこに紙を詰めることができますが、私があなたに見せることができるのはナンバープレートだけで、あなたは箱に手を伸ばしてそれを埋めることができます。

「pp1-100」のナンバー プレートがあるとします。プレート ホルダーを見つけましたが、それは「p1-100」の別のナンバー プレートです。あなたは再びホルダーを見つけ、箱を見つけることができました.

これが「ポインタへのポインタ」です。


なぜダブル/トリプル/クアッドポインターが必要なのですか? さまざまな理由で、私たちはそれを望んでいます (しかし、誰が気にしますか?)。

于 2014-05-20T02:47:18.417 に答える