字符串初始值设定问题

hada1234 2008-04-08 03:18:43
char szBuffer[100] = {0} & memset(szBuffer,0,100);的区别是什么啊?希望高手赐教
...全文
182 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
techfaith2 2008-04-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 chenzhp 的回复:]
memset可以设置各种字符来清空结构类型的变量或数组,就好像包饺子
memset(szBuffer,'各种馅',100);
[/Quote]
很形象
chenzhp 2008-04-08
  • 打赏
  • 举报
回复
memset可以设置各种字符来清空结构类型的变量或数组,就好像包饺子
memset(szBuffer,'各种馅',100);
DonyUnx 2008-04-08
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qiuqiu173 的回复:]
char szBuffer[100] = {0} ---------->只初始化szBuffer[0]=0(空格), 其他随机
memset(szBuffer,0,100); ----->这是一个函数把szBuffer长度100个初始化为0
[/Quote]
jieao111 2008-04-08
  • 打赏
  • 举报
回复
memset可以方便的清空一个结构类型的变量或数组。

是用来清空或者在函数中调用的。。你的char szBuffer[100] = {0}值用在定义时,,没有啥可比性
Supper_Jerry 2008-04-08
  • 打赏
  • 举报
回复
没有区别。memset还可以设置别的。
前者只能针对数组。
qiuqiu173 2008-04-08
  • 打赏
  • 举报
回复
char szBuffer[100] = {0} ---------->只初始化szBuffer[0]=0(空格), 其他随机
memset(szBuffer,0,100); ----->这是一个函数把szBuffer长度100个初始化为0
笑遍世界 2008-04-08
  • 打赏
  • 举报
回复
怎么你的char类型数组,能char szBuffer[100] = {0}吗??? 应该是{'\0'}吧,这样和memset(szBuffer,'\0',100)得到的效果是一样的,但是原理很不一样的。。。
char szBuffer[100] = {'\0'}是将szBuffer[0]='\0',szBuffer[1]--[99]都是采用默认的自动定义为'\0'的。。
而memset(szBuffer,'\0',100)是将sz中的100个字节设置为'\0';如果改成memset(szBuffer,'A',100),就是全部设置为'A'了;而char szBuffer[100] = {'A'} 将szBuffer[0]='A',而szBuffer[1]--[99]是采用默认的自动定义为'\0'的


原型:extern void *memset(void *buffer, int c, int count);

用法:#include <string.h>

功能:把buffer所指内存区域的前count个字节设置成字符c。

说明:返回指向buffer的指针。
hada1234 2008-04-08
  • 打赏
  • 举报
回复
在线等 谢谢

69,371

社区成员

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

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