c语言if表达式判断

在看到一个结构体内指针变量释放空间的时候
他是这么判断是否释放的
if(str.ch){
free(struts.ch)
}我疑惑在c中不是没有true或false判断真假用的0\1
不为空时候数值不为0可以进去这个表达式,为空的时候那就代表NULL为0么
我的想法是为什么不能
if(str.ch!=NULL)初学者望求解

可以的啊。。。你测试了不可以么?