簡體   English   中英

為什么這段代碼不會置換Z值?

[英]Why won't this code permute the value Z?

因此,我試圖在C中構建一個簡單的程序來置換z的值( z等於x + y ),但是我嘗試不同的每件事都不起作用。 這里嚴重沮喪。 請幫助我理解。

資源:

#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;
}

您正在打印z的地址,而不是存儲的值,因為要向printf傳遞指向z的指針而不是該值。 printf行更改為:

printf("%d", z);

scanf已經返回成功值,因此必須使用另一種方式為您提供輸入。 您傳遞的參數( &x )是指向要用於存儲的變量的指針。 這就是“&”號的作用。 它說“使用此變量的地址”。

另一方面, printf只想要值本身。 它不需要地址。 (不過,從技術上講,字符串是作為指針傳遞的。現在不必擔心這是區別。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM