繁体   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