2016-08-24 57 views
0

所以我想在C中構建一個簡單的程序,其排列的值爲zz等於x + 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

你打印的z地址,而不是存儲的值,因爲,您將printf指針z,而不是價值。更改printf行:

printf("%d", z); 

scanf已經成功返回值,所以必須用另外一種方式給你的輸入。您傳遞的參數(&x)是指向要用於存儲的變量的指針。這是&符號的作用。它說「使用這個變量的地址」。

printf另一方面,只是想要自己的價值觀。它不需要地址。 (雖然從技術上說,字符串可以作爲指針傳入,可能不是您現在需要擔心的區別。)

+0

謝謝!!!!!! –