新手谈C指针02__int *p=NULL、*p=NULL、*(int *)0x0018ff44.

这篇博客探讨了C语言中指针变量初始化为NULL(0)的含义,强调了NULL、0与ASCII码为0的空字符NUL之间的区别。作者解释了指针变量P存储地址0x00000000的情况,并指出编译器只能检查语法错误,不能确保程序在所有情况下都能正常运行。文章还讨论了尝试向未知地址写入内容的风险,并提醒读者注意计算机内存的访问限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

int  *p = NULL;

此语句什么意思?没错,就是定义了一个整型指针变量P,并进行了初始化。

那么,现在有个问题。它初始化了什么东西?NULL?

NULL又是什么?(这里需要注意)

NULL是被宏定义成 0 。即为 define   NULL  0 

很多系统下除了NULL之外,还有NUL(VC++6.0上提示说不认识NUL。error C2065: 'NUL' : undeclared identifier )NUL是ASCII码表的第一个字符,表示的是空字符,其ASCII码值为0;虽然都为0,但表示的意思完全不一样。同样,NULL和0表示的意思也完全不一样。一定不要混淆。


既然我们知道NULL是0,就是说指针变量P初始化为0了。

在前一篇新手谈C指针01_指针?中我们已经说过,指针变量内任何数据都会被当作地址进行处理。所以,P 里存储的是地址0x00000000。而不是把 *p 里的内容初始化为0。

其实,在上一篇博文也提到了。我

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值