Я пробовал некоторые коды C в Dev C ++ и Visual C ++.

Например:

int t =6;
printf("\nt = %d ",&t);

Выход:

t = 2358848

Почему это так ? Как я могу получить значение t?

0
Arun Joe Cheriyan 26 Ноя 2016 в 11:58

3 ответа

Лучший ответ

&t дает вам адрес t, а не его значение.

Чтобы распечатать значение, выполните:

printf("\nt = %d ", t);
3
alk 26 Ноя 2016 в 09:00

Попробуйте это: printf("\nt = %d ", t);

Вы пытаетесь напечатать адрес переменной t.

1
MrMuMu 26 Ноя 2016 в 09:00

Знак & известен как унарный, и он дает вам адрес переменной. Это сбивает с толку, потому что при использовании scanf ему нужен адрес для хранения пользовательского ввода, чтобы вы использовали унарный. Но при печати он хочет, чтобы значение отображалось на экране, ему все равно, какой у него адрес.

Примере:

int t = 0;
scanf("%d", &t); // This saves what the user inputs to the memory location of t
printf("\n %d", t); // This prints the value the user input

В качестве альтернативы, если вы действительно хотите узнать, что такое адрес:

printf("\n %p", &t); // This displays a memory location properly formatted.
2
interputed 9 Дек 2016 в 07:41