任何int类型数据与空值null运算的结果都为0吗

1个回答
展开全部
咨询记录 · 回答于2022-12-22
任何int类型数据与空值null运算的结果都为0吗
C语言空指针是NULL,NULL的值不需要是0。但C++空指针必须是0值。C++作者为了支持模版泛型编程,强行规定所有类型都必须有一个0值,而且规定了指针0值就是空指针。是的,C++中不应该使用NULL,应该使用0。0值确实是0值,但0值也是有类型的,0指针,有0整数。而在具体题主所说的地方需要一个指针,所以那个地方的0就是指针。0指针理论上代表指向地址0的指针。当然,C语言没有这么规定,没有规定NULL的具体值,所以可以使用任意值表示NULL。对于同时支持C++的编译器,为了让C++与C语言代码兼容,往往会将NULL定义为0值,这样才能兼容C++规定空指针必须为0值的规定。对于一些纯C编译器来说,有可能会设定NULL为一个非零的任意值,比如-1或者0xffffffff之类都有可能。至于0值能不能访问,这也是平台相关的。对于x86平台来说0地址恰好是个不能访问的地址,所以空指针设定为0恰好就不能访问,这样也还算方便。不过对于其它平台而言,0值也可以是能访问的地址。C语言中,NULL是个常量,该指针可以是任意值,对NULL指针的访问会造成什么结果,大概是未定义
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消