#c #pointers
#c #указатели
Вопрос:
Я недавно пытаюсь изучить указатели на C . поэтому я использую (нулевые указатели) int *pnumber = NULL;
но я не понимаю, почему я получаю 17824320 на выходе. не могли бы вы, пожалуйста, объяснить?
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include<stdlib.h>
int main() {
int number = 0;
int *pnumber = NULL;
number = 10;
pnumber = amp;number;
printf("%d n", number);
printf("%d n", pnumber);
return 0;
}
И вывод такой
10
17824320 (я думаю, адрес памяти)
Комментарии:
1. потому что вы назначаете его в
pnumber = amp;number;
?
Ответ №1:
pnumber = amp;number;
...
printf("%d n", pnumber);
Исходные значения NULL, поступающие из int *pnumber = NULL;
, изменяются pnumber = amp;number;
, поэтому вы записываете значение pnumber, являющееся адресом number
Если вы это сделаете printf("%d n", *pnumber);
, это запишет 10
Комментарии:
1. Спасибо за вашу помощь