为什么总不进入这步if(textbox1.text == null)

来源:百度知道 编辑:UC知道 时间:2024/05/26 05:05:00
if (textbox1.text == null){}
通过追踪,无论textbox1有没有填东西,它总是不进入这IF的。
为什么呢?

这是因为NULL的含义到底是什么?
请看STDIO.H里对NULL的定义:
/* Define NULL pointer value */

#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void *)0)
#endif
#endif
NULL说白了是对指针的赋值,说明了指针为空。即指针指向了0x00000000的地址,如果对这个地址引用的话,会产生内存引用异常。
只要明白了这点,就会知道,NULL并不是字符串为空的意思,而是说指点这个字符串的指针是否有效。
如果你要判断字符串为空,就用if (0==strcmp("",string)){}
-------------------------------------------------------------
你可以自己动手调一下试试
-------补充:
所以,你之所以进不到if里面,就是因为textbox1.text不管字符串是不是为空,但这个字符串指针是有效的,是有地址的。所以永远不可能为NULL.

字符传的空不能这样比较的。

你可以用看字符串的长度是否等于0,就知道它是不是空的了。