您的位置:首页 > 编程语言 > C语言/C++

C语言中字符指针赋值""和NULL的区别

2013-03-25 17:49 302 查看
在C程序中对一个字符指针赋值""和NULL是不一样的,代码如下:

char *p="";
char *q=NULL;


前者为p分配了内存空间用于保存一个指针(32位机上及4字节),后者不为q分配空间。所以调用strlen时,前者返回0,后者将产生错误。

同样,用printf的%p打印二者的地址时,前者会返回一个32位的地址值,而后者则返回(nil)。

注:以上在gcc下调试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: