我最近尝试学习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 = &number;
printf("%d \n", number);
printf("%d \n", pnumber);
return 0;
}
输出为
10
17824320(我认为是内存地址)
答案 0 :(得分:2)
pnumber = &number; ... printf("%d \n", pnumber);
来自int *pnumber = NULL;
的初始NULL值被pnumber = &number;
修改,因此您将 pnumber 的值写为 number 的地址>
如果您进行printf("%d \n", *pnumber);
则写10