社区
C语言
帖子详情
数组初始化的问题?
walterzh
2004-07-29 11:45:28
char a[5]="\0"和memset(a, '\0', sizeof(a))效果是不是一样。
换言之:
在用char a[5]="\0"定义完以后,a的内存区域里的值是怎么样的。
是5个'\0'
还是a[0]是'\0',后面是未初始化的内存。
为什么?
...全文
121
11
打赏
收藏
数组初始化的问题?
char a[5]="\0"和memset(a, '\0', sizeof(a))效果是不是一样。 换言之: 在用char a[5]="\0"定义完以后,a的内存区域里的值是怎么样的。 是5个'\0' 还是a[0]是'\0',后面是未初始化的内存。 为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shanewest1
2004-07-29
打赏
举报
回复
up
RookieStar
2004-07-29
打赏
举报
回复
我记得这个知识点是我在一开始学老谭的那本书的时候就学到的
对数组的初始化,若数组是局部变量,则未给出的初值自动赋为0(条件是未给出的初值只能靠近数组尾端,不能夹在两个已给初值之间)
eg: int a[5]={1,2,3};
a[0]=1 a[1]=2 a[2]=3 a[3]=0 a[4]=0
所以char a[5]="\0";
这个初始化就相当于char a[5]={'\0'},又因为'\0' <=> 0
故五个数组元素都是'\0';
如果对'\0'是否等价于0有疑问,试试看这个:
#include <iostream>
using namespace std;
int main()
{
char c='\0';
int i=0;
cout<<(c==i)<<endl;
return 0;
}
fireinsky
2004-07-29
打赏
举报
回复
晕,'\0'就是0.
walterzh
2004-07-29
打赏
举报
回复
EternalBlue()和njSeeWhy(北海鲲鹏)说的是
在VC下和AIX下的C编译器都是5个'\0'
\0和0是不一样的
是为什么?
njSeeWhy
2004-07-29
打赏
举报
回复
我在VC6下调试,char a[5]="\0"的结果是5个'\0',不知道 peter9606(裴裴)(学习C/C++,但也要生活)和plusKid(const char* name) 两位是在什么环境下测试的
EternalBlue
2004-07-29
打赏
举报
回复
是5个'\0'
njSeeWhy
2004-07-29
打赏
举报
回复
C++中定义数组时可以按顺序指定每个元素的初始化值,没有指定的用0填充,所以就你这个例子来说,char a[5]="\0"和memset(a,'\0', sizeof(a))效果是一样的。再比如:
int a[5]={1};
结果是:a[0]=1 a[1]=a[2]=a[3]=a[4]=0
plusKid
2004-07-29
打赏
举报
回复
另外,我记得0是等于'\0'的,而不是空格。
plusKid
2004-07-29
打赏
举报
回复
如果是
char a[5] = {0};
的话,就是五个零,如果是楼主说的那样的话,就是a[0]='\0';
peter9606
2004-07-29
打赏
举报
回复
char a[5]="\0" ;
之后 a[0] = '\0' ;其他的都是随机值
char a[5]={'\0'} ;
之后 a[1] = 0 ; a[2] = 0 ; a[3] = 0 ; a[4] = 0 ;也就是空格
memset(a,'\0',sizeof(a)) ;
之后 a[0]= '\0' ;a[1] = '\0' ; a[2] = '\0' ; a[3] = '\0' ; a[4] = '\0' ;
peter9606
2004-07-29
打赏
举报
回复
char a[5]="\0" ;
之后 a[0] = '\0' ;其他的都是随机值
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~这句话错了 其它值也都是0
char a[5]={'\0'} ;
两个效果一样
如何将
数组
初始化
为0?
如何将
数组
初始化
为全0? C语言中,声明
数组
的语句: int arr[100]; 这样声明得到的
数组
里面的存储的是随机的我们不知道的数据,对用户来说就是垃圾。有许多情况我们要将
数组
初始化
为全零的情况才能进行其他操作...
C语言常见
问题
——
数组
初始化
的四种方法
他说,“学过编程,我便考一考你,在使用
数组
之前,应不应该
初始化
数组
?”我暗想,这么简单的
问题
,也配考我么?不只是
数组
,在使用任何变量之前,都应该对变量进行
初始化
,这是一个编程的好习惯,可以有效避免许多...
go语言
数组
如何
初始化
问题
? - 知乎
数组
是相同数据类型的一组长度固定的序列,类型可以是整形、字符串和浮点...运行结果:运行结果
数组
初始化
时,可以在声明
数组
时使用大括号
初始化
,或者在
数组
声明完成之后使用索引对
数组
中指定位置的元素进行
初始化
,在
C/C++
数组
初始化
的总结
数组
初始化
的几种形式
数组
初始化
为某一固定值 memset(
数组
名,值,sizeof(
数组
名)) fill(begin(),end(),value) 以前刚开始学
数组
初始化
,一直都没搞太清楚,包括参加PAT考试,直到看了胡凡的《算法笔记》,逐渐...
如何将
数组
初始化
为全0?
如何将
数组
初始化
为全0? C语言中,声明
数组
的语句: int arr[100]; 这样声明得到的
数组
里面的存储的是随机的我们不知道的数据,对用户来说就是垃圾。有许多情况我们要将
数组
初始化
为全零的情况才能...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章