所以我试图在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;
}
答案 0 :(得分:5)
您正在打印z
的地址,而不是存储的值,因为您将printf
指针传递给z
而不是值。将printf
行更改为:
printf("%d", z);
scanf
已经返回成功值,因此必须使用其他方式为您提供输入。您传递的参数(&x
)是指向要用于存储的变量的指针。这就是&符号的用途。它说“使用这个变量的地址”。
printf
只是想要自己的价值观。它不需要地址。 (虽然从技术上讲,字符串会作为指针传入。可能不是你现在需要担心的区别。)