在c语言中,一个字符串数组被赋值为NULL和被赋值为空字符串,有区别吗?

gongdath 2005-04-20 12:58:42
请问各位高手,在c语言中,一个字符串数组被赋值为NULL和被赋值为空字符串,有区别吗?
...全文
4369 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
jsjjms 2005-04-20
  • 打赏
  • 举报
回复 1
如果被赋值NULL,则表示什么都是空的。
包括它的地址。

而赋值为0,至少有个地址。
dongpy 2005-04-20
  • 打赏
  • 举报
回复 1
如果是字符数组,那应该是把NULL和空字符'\0'作比较,而不是空字符串""。

那么,NULL和空字符'\0'赋给数组元素,效果是一样的,都是把一个字节的内存单元设为0。
zhousqy 2005-04-20
  • 打赏
  • 举报
回复
個人認為是應該是不一樣的。
winstonch 2005-04-20
  • 打赏
  • 举报
回复
说的对,当然,不能说是空字符串,要初始化为空字符串后才是空字符串,方法可能参照上面的
gongdath 2005-04-20
  • 打赏
  • 举报
回复
是不是说,字符数组被定义后,就自动被分配了内存,所以,不是NULL,而是空字符串?
也无法在变成空指针?
winstonch 2005-04-20
  • 打赏
  • 举报
回复 1
不是字符数组赋成NULL.
比如char str[10];
只能
str[0] = NULL;

str[0] = '\0';//这样好一些
你想str = NULL是不行的.
huliang47 2005-04-20
  • 打赏
  • 举报
回复
当然有区别:
NULL 连内存地址都没有的
而空字符确存在内存地址;
gongdath 2005-04-20
  • 打赏
  • 举报
回复
字符数组可以被赋值为NULL吗?可以被初始化为NULL吗?
winstonch 2005-04-20
  • 打赏
  • 举报
回复
字符数组,可以认为是一样的
gongdath 2005-04-20
  • 打赏
  • 举报
回复
对不起,我问错了,是字符数组,不是字符串数组。
kobefly 2005-04-20
  • 打赏
  • 举报
回复
是不一样的,如果是字符串指针的话

而如果是字符数组的话,我看效果是一样的

7: char *pch1 = NULL;
00401028 mov dword ptr [ebp-4],0
8: char *pch2 = "";
0040102F mov dword ptr [ebp-8],offset string "" (00422054)
9:
10: char ch1[5] = {NULL};
00401036 mov byte ptr [ebp-10h],0
0040103A xor eax,eax
0040103C mov dword ptr [ebp-0Fh],eax
11: char ch2[5] = "";
0040103F mov cl,byte ptr [string "" (00422054)]
00401045 mov byte ptr [ebp-18h],cl
00401048 xor edx,edx
0040104A mov dword ptr [ebp-17h],edx
Jim_King_2000 2005-04-20
  • 打赏
  • 举报
回复
1、字符串数组不可能被赋值为NULL。只有指针可以被赋值成NULL。字符串数组也不可以被赋值。只能被初始化。
2、就算是字符串,被赋值成NULL和被初始化成空字符串,也是有很大区别的。
lmxctds 2005-04-20
  • 打赏
  • 举报
回复
我也感觉没有区别。
yxxng 2005-04-20
  • 打赏
  • 举报
回复
NULL其实就是((void*)0)
winstonch 2005-04-20
  • 打赏
  • 举报
回复
当然有区别了.赋成NULL,是这个指针是空,而作为空串是串的长度为0.

就是有空间和没有空间的问题
pcboyxhy 2005-04-20
  • 打赏
  • 举报
回复
C语言字符串本来就是根据 '\0' 判断长度的
至于你怎么令它的第一个元素为'\0'(赋值空)
都是无所谓的
tree_ada 2005-04-20
  • 打赏
  • 举报
回复
我想是有区别的。

zengwujun 2005-04-20
  • 打赏
  • 举报
回复
没有区别

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧