社区
C语言
帖子详情
在c语言中,一个字符串数组被赋值为NULL和被赋值为空字符串,有区别吗?
gongdath
2005-04-20 12:58:42
请问各位高手,在c语言中,一个字符串数组被赋值为NULL和被赋值为空字符串,有区别吗?
...全文
5180
18
打赏
收藏
在c语言中,一个字符串数组被赋值为NULL和被赋值为空字符串,有区别吗?
请问各位高手,在c语言中,一个字符串数组被赋值为NULL和被赋值为空字符串,有区别吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
18 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jsjjms
2005-04-20
打赏
举报
回复
2
如果被赋值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
打赏
举报
回复
没有区别
手写数字识别系统.doc【GUI设计Matlab】
资 源 简 介 手写数字识别系统,非常好的啊!带有GUI界面,使用方便! 详 情 说 明 用这个手写数字识别系统,你可以轻松地识别手写数字。这个系统不仅功能强大,而且还带有直观的图形用户界面(GUI),非常容易使用。你只需要将手写数字输入系统,它将立即给出准确的识别结果。这个系统可以在各种场景
中
使用,无论是学校、工作还是日常生活,都能为你提供快速和准确的识别服务。它是
一个
非常方便和实用的工具,你一定会喜欢它的!
如何通过区域科技创新分析工具精准掌握区域创新要素分布与产业链融合现状?.docx
如何通过区域科技创新分析工具精准掌握区域创新要素分布与产业链融合现状?
Visual-Workflow-Orphan-Node-Auditor-v1.0-原创源码与文档.zip
原创本地工程审计与分析工具合集
中
的独立资源包。每个ZIP包含完整源码、3项自动化测试、可复现合成示例、离线HTML、JSON与SVG报告、1080×720真实运行效果图、README、运行说明、功能清单、MIT License及原创与授权声明。解压后进入project目录,执行npm test验证算法,执行npm run report生成报告,也可通过本地静态服务器打开网页。运行时零第三方依赖,不包含热点产品或开源项目源码、Logo、官方截图、论文、生产日志或其他受限素材。适合前端开发、AI应用工程、测试审计和课程实践。
Cypress-Flaky-Test-Evidence-Auditor-v1.0-原创源码与文档.zip
原创本地工程审计与分析工具合集
中
的独立资源包。每个ZIP包含完整源码、3项自动化测试、可复现合成示例、离线HTML、JSON与SVG报告、1080×720真实运行效果图、README、运行说明、功能清单、MIT License及原创与授权声明。解压后进入project目录,执行npm test验证算法,执行npm run report生成报告,也可通过本地静态服务器打开网页。运行时零第三方依赖,不包含热点产品或开源项目源码、Logo、官方截图、论文、生产日志或其他受限素材。适合前端开发、AI应用工程、测试审计和课程实践。
FortiGate-v7.4.9-FGT-601E-v7.4.9.M-build2829-FORTINET.out
FGT_601E-v7.4.9.M-build2829-FORTINET.out
C语言
70,038
社区成员
243,245
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章