社区
C语言
帖子详情
在c语言中,一个字符串数组被赋值为NULL和被赋值为空字符串,有区别吗?
gongdath
2005-04-20 12:58:42
请问各位高手,在c语言中,一个字符串数组被赋值为NULL和被赋值为空字符串,有区别吗?
...全文
4369
18
打赏
收藏
在c语言中,一个字符串数组被赋值为NULL和被赋值为空字符串,有区别吗?
请问各位高手,在c语言中,一个字符串数组被赋值为NULL和被赋值为空字符串,有区别吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
没有区别
心得分享——
c语言
如何将多个
字符串
赋值
给
字符串
数组
(即
c语言
如何输入并储存多个
字符串
)
直接上代码: int i, n; char *string[MAXN] = {
NULL
}; scanf("%d", &n); for(i = 0; i <... string[i] = (char *)malloc(sizeof(char)*MAXS);...这样就可以输入
字符串
并
赋值
给“
字符串
”
数组
...
C
字符串
数组
赋值
C字符
数组
赋值
举例如下: char a[10]; 1、定义的时候直接用
字符串
赋值
char a[10]="hello"; 注意:不能先定义再给它
赋值
,如 char a[10]; a[10]="hello"; 这样是错误的! 2、对
数组
中
字符逐个
赋值
...
C语言
| 学习
C语言
字符串
数组
,看这一篇就够了!
一、
字符串
的定义 char *str1 = {"Hello world!"}; // 方式一 (可省略{}) char str2[] = {"Hello world!"}; // 方式二 (可省略{}) ...(1) 方式一的本质是定义了
一个
char型指针str1, 指向的是
字符串
常量Hello wo
C语言
—
字符串
与字符
数组
,
字符串
数组
与
字符串
指针的
区别
——以字符’\0’结尾的char
数组
就是
一个
字符串
,但如果char
数组
没有以’\0’结尾,那么就不是
一个
字符串
,只是普通字符
数组
,所以
字符串
是一种特殊的char
数组
。 两者的
区别
:
字符串
: 1、
字符串
赋初值用双引号引...
C字符
数组
赋值
1、定义的时候直接用
字符串
赋值
char a[10]="hello"; 注意:不能先定义再给它
赋值
,如 char a[10]; a[10]="hello"; 这样是错误的! 2、对
数组
中
字符逐个
赋值
char a[10]={'h','e','l','l','o'}; 3、利用strcpy ...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章