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 = &number;
printf("%d \n", number);
printf("%d \n", pnumber);
return 0;
}
输出是
10
17824320(我认为是内存地址)
解决方案
pnumber = &number; ... printf("%d \n", pnumber);
来自的初始 NULL 值int *pnumber = NULL;
被修改,pnumber = &number;
因此您将pnumber的值写入number的地址
如果你这样做printf("%d \n", *pnumber);
会写 10
推荐阅读
- neo4j - 为什么我在 Neo4j Desktop 中没有图形按钮?
- python - 如何将当前路径与 URL 模式匹配?
- c++ - 我是否需要使用互斥锁来保护不同线程对互斥锁数组的访问?
- powerapps - Power Automate 将成员添加到组
- ios - 如何处理 React Native iOS 中的内存警告?
- neo4j - 根据 Cypher neo4j 中的属性值总和创建新关系?
- python - 可以模拟图书馆吗?
- r - nanotime:如何处理 tibble 中的 NA?
- r - 如何在 R 中堆叠我们的数据
- web-services - 可以从远程 iis 浏览 Web 服务,但不能在 Internet 上浏览