[英]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.