2016-08-24 2 views
0

私はCの中でzzx + yと等しいです)の値を置き換えますが、私が違った方法で試してみるとうまくいかないという単純なプログラムを構築しようとしています。真剣にここを挫折させた。私の理解を助けてください。なぜこのコードは値Zを置換しませんか?

出典:

#include <stdio.h> 
#include <stdlib.h> 
int main() 
{ 
    int x, y, z; 
    scanf("%d", &x); 
    scanf("%d", &y); 
    z = x + y; 
    printf("%d", &z); 
    return 0; 
} 

答えて

5

あなたはprintfzへのポインタではなく値を渡しているので、あなたは、zのアドレスではなく、格納された値を印刷しています。 printf行を変更します。

printf("%d", z); 

scanfはまだあなたに入力を与えるために別の方法を使用しなければならない成功値を返します。渡す引数(&x)は、格納に使用する変数へのポインタです。それがアンパサンドのためのものです。 「この変数のアドレスを使用する」と表示されます。

printfは、値自体が必要です。アドレスは必要ありません。 (技術的には、文字列がポインタとして渡されますが、おそらく現在は心配する必要はありません)

+0

ありがとう!!!!!! –

関連する問題