导航
  • 全部
...

char a[100]={0};初始化的含义是什么呢?

faintLinkinPark 2006-03-27 09:55:36

rt

,是赋了100个0 么?

还是别的什么
...全文
给本帖投票
5750 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
firetoucher 2006-03-28
  • 打赏
  • 举报
回复
回复人:faintLinkinPark() ( 一级(初级)) 信誉:100 2006-3-27 13:08:15 得分:0
?

后来我又做了一个试验

char a[10];
char b[10]={0};

printf("%s,%s\n",a,b);

结果a和b,打印出来的值是一样的

后来我又把b改为 char [b]={1};

此时打印出来的与前面的就不太一样了

----------------------------------
我想知道,你真的char [b]={1};这样写了?



FT
--
Anything one man can imagine, other men can make real.
hua2325 2006-03-28
  • 打赏
  • 举报
回复
ben ~~~~~~~~~~~~~~~~~~~
fallenbluefire 2006-03-28
  • 打赏
  • 举报
回复 1
char a[100]={0};
好像不是赋了100个0的样子,而是只赋了1个0,ascii里面“0“对应着NULL
应该给了第0号元素1个NULL值

char aa[100] ={65};
cout<<aa<<endl;
只会输出一个"A",而不是100个"A",因为只有第0号元素被设置成了A(ascii码为65)
Kache 2006-03-28
  • 打赏
  • 举报
回复
不知道有没有人试过 int array[1000000] = { 0 }编译之后的结果呢,虽然看起来效果和手工置零的差不多,但是实现上还是有很大差别的,建议还是先memset(),然后再做部分赋值好了。
besthyq 2006-03-27
  • 打赏
  • 举报
回复
0000000000000000000000000000000000000000000000......00000.....
faintLinkinPark 2006-03-27
  • 打赏
  • 举报
回复
了解,小弟真是才疏学浅,以后还指望各位大侠指点迷津呀~~~~~~~

自己寒一个~~~~~
iamthebest1983923 2006-03-27
  • 打赏
  • 举报
回复
0在赋值给char时代表空格
只有数组赋值个数小于数组数量时,用最后一个值给剩下的进行赋值
wqtl_357 2006-03-27
  • 打赏
  • 举报
回复
第一个元素被你附值为0外,其他99个元素都默认为0.
这是一种省略写法,等同于
for(int i=0; i<100; i++)
{
a[i] = 0;
}

也可以把a的内容打印出来

#include <stdio.h>

int main()
{
int i;
char a[100] = {0};
for(i=0; i<100; i++)
printf("%d",a[i]);

return 0;
}
snowwolf_2006 2006-03-27
  • 打赏
  • 举报
回复
呵呵,C里面的字符和整数用的时候是一回事!所以赋了 100个0.
晨星 2006-03-27
  • 打赏
  • 举报
回复
本来就是为了举个更一般点的例子,好让你不要误以为只有char如此。
晨星 2006-03-27
  • 打赏
  • 举报
回复
//我定义的数组类型好像是char 。。。。。
——郁闷,你就不能举一反三嘛。-_-

char a[100]={'A', 'B', 'C'};
表示除前三个分别被初始化为'A', 'B'和'C',其余97个都是0,即'\0'。
zez 2006-03-27
  • 打赏
  • 举报
回复
就是赋了 100个0
duduhaha 2006-03-27
  • 打赏
  • 举报
回复
我定义的数组类型好像是char 。。。。。
char也如前面众人所说的一样。
faintLinkinPark 2006-03-27
  • 打赏
  • 举报
回复
我定义的数组类型好像是char 。。。。。
晨星 2006-03-27
  • 打赏
  • 举报
回复
还是楼上说得比较确切,呵呵。更一般地说,对于:
int a[100]={1, 2, 3};
表示除前三个元素分别被初始化为1,2和3之外,后面97个全都默认为0。
shenmea00000 2006-03-27
  • 打赏
  • 举报
回复
char a[100]={0};初始化的含义是什么呢?
==============================
除了第一个元素被你附值为0外,其他99个元素都默认为0,所以100个元素都为0
-------------------------------------------------------------------
expert2000 2006-03-27
  • 打赏
  • 举报
回复
相当于memset(&a[0],0x00,100);输出每个数组元素都是(null)
晨星 2006-03-27
  • 打赏
  • 举报
回复
100个全是0,这是C语言标准规定的,大胆使用就行了。
ox_thedarkness 2006-03-27
  • 打赏
  • 举报
回复
char a[10]; // 未初始化,内容要么是随机的,要么是编译器debug 模式加上的特殊内容

- - 你用的什么编译器,不会是TC2 把? 随便换个编译器都会打出乱码。
faintLinkinPark 2006-03-27
  • 打赏
  • 举报
回复
后来我又做了一个试验

char a[10];
char b[10]={0};

printf("%s,%s\n",a,b);

结果a和b,打印出来的值是一样的

后来我又把b改为 char [b]={1};

此时打印出来的与前面的就不太一样了

70,008

社区成员

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

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

手机看
关注公众号

关注公众号

客服 返回
顶部