首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我在声明中说int*p = NULL,但在测试中p!= NULL,为什么不用*p!= NULL来匹配声明?

在声明中,int* p = NULL; 表示将指针p初始化为一个空指针,即指向内存地址为0的位置。而在测试中,p != NULL 表示判断指针p是否指向了一个非空的内存地址。

在C/C++中,指针是一种特殊的变量类型,它存储了一个内存地址。当我们声明一个指针变量时,可以选择将其初始化为一个特定的值,如NULL。NULL是一个宏定义,表示一个空指针常量,其值通常为0。

在测试中,p != NULL 是在判断指针p是否指向了一个有效的内存地址。如果p不等于NULL,说明p指向了一个非空的内存地址,即p已经被正确地初始化为一个有效的指针。

p != NULL 是在判断指针p所指向的内存地址中的值是否为NULL。这种比较通常用于判断指针所指向的内存中是否存储了有效的数据。在这个问题中,并没有涉及到p的具体值,因此不需要使用*p != NULL 来匹配声明。

总结起来,int p = NULL; 是将指针p初始化为空指针,而p != NULL 是判断指针p是否指向了一个非空的内存地址。而p != NULL 则是判断指针p所指向的内存中的值是否为NULL。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 【C++】异常+智能指针+特殊类和类型转换

    1. C语言传统处理错误的方式无非就是返回错误码或者直接是终止运行的程序。例如通过assert来断言,但assert会直接终止程序,用户对于这样的处理方式是难以接受的,比如用户误操作了一下,那app直接就终止退出了吗?这对用户来说,体验效果是很差的,毕竟我只是不小心误操作了而已,程序就直接退出了,那太不合理了!而像返回错误码这样的方式也不够人性化,需要程序员自己去找错误,系统级别的很多接口在出错的时候,总是会把错误码放到全局变量errno里面,程序员还需要通过打印出errno的值,然后对照着错误码表来得出errno对应的错误信息是什么。 而实际中,C语言基本都是使用错误码来处理程序发生错误的情况,部分情况下使用终止程序的方式来处理错误。

    04
    领券