首页 > 编程语言 > 详细

C语言忽略的一点if(p)和if(!p)与if(p ==NULL) 有什么关系呢

时间:2020-04-20 22:14:52      阅读:75      评论:0      收藏:0      [点我收藏+]

#include <stdio.h>
#include <stdlib.h>
int main()
{
int a = 5 ;
int * p =(int *)malloc(sizeof(int));
int * q =NULL ;
if(!q) printf("没有分配内存\n");exit(-1);
if(p)
{
p = &a ;
}
printf("%d\n",*p);
}

c语言里, 数字0被认为是假, 非0被认为是真
假设p内存分配成功那么if(p) 是一个为永真的表达式他等于if(p!=NULL)

假设q内存分配失败,他就是NULL,那么if(!q) 就等于if(q==NULL) , 简单的问题反而会忽略

C语言忽略的一点if(p)和if(!p)与if(p ==NULL) 有什么关系呢

原文:https://www.cnblogs.com/cocobear9/p/12740749.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!