printf () печатает неправильное значение - PullRequest
1 голос
/ 13 октября 2019

Это мой полный код, и каждый раз, когда я запускаю его, он печатает случайные отрицательные значения, не зная, что не так. используя 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;
}

1 Ответ

8 голосов
/ 13 октября 2019

Вы передаете адрес p. Вам нужно передать значение.

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

Когда он у вас есть, ваш код печатает адрес p, каким бы он ни был.

Кроме того, поскольку выиспользуя unsigned int, вы, вероятно, захотите использовать форматер % u , инстантированный % d .

...