我最近尝试用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;

    }

结果是

17824320(我想是内存地址)

最佳答案

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

来自int *pnumber = NULL;的初始空值由pnumber = &number;修改,因此您将pnumber的值写为number的地址
如果你写了10

09-09 18:22