C-无效指针为什么我要获得此输出



i新尝试在c中学习指针。所以我使用(null指针)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(我认为内存地址)

pnumber = &number;
...
printf("%d n", pnumber);

来自int *pnumber = NULL;的初始null值由pnumber = &number;修改,因此您写入 pnumber 的值是 number

的地址

如果您执行printf("%d n", *pnumber);,则写10

最新更新