printf() 正在打印错误的值

printf() is printing the wrong value

这是我的完整代码,每次我都打印随机负值 运行 它不确定哪里出了问题。 使用 Ubuntu 到 运行 和 "gcc -Wall -Wextra test.c"

#include <stdio.h>
int main () {

unsigned int x = 10;
unsigned int y = 16;
unsigned int p = x + y;

printf("%d\n", &p);

return 0;
}

您传递的是 p 的地址。您需要传递值。

printf("%d\n", p);

如您所见,您的代码正在打印 p 的地址,无论它是什么。

此外,由于您正在使用 unsigned int,您可能希望使用 %u 格式化程序而不是 %d.