社区
C语言
帖子详情
char a[100]={0};初始化的含义是什么呢?
faintLinkinPark
2006-03-27 09:55:36
rt
,是赋了100个0 么?
还是别的什么
...全文
5803
20
打赏
收藏
char a[100]={0};初始化的含义是什么呢?
rt ,是赋了100个0 么? 还是别的什么
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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};
此时打印出来的与前面的就不太一样了
char
a[
100
]={0};
初始化
的
含义
是什么呢?
还是楼上说得比较确切,呵呵。更一般地说,对于: int a[
100
]={1, 2, 3}; 表示除前三个元素分别被
初始化
为1,2和3之外,后面97个全都默认为0。 //我定义的数组类型好像是
char
。。。。。 ——郁闷,你就不能举一反三嘛。-_-
char
a[
100
]={ 'A ', 'B ', 'C '}; 表示除前三个分别被...
关于
char
*p = "";的思考
偶然记起在浏览别人的代码的时候发现有一处指针的
初始化
时这样写的:
char
*p = ""; 首先我们知道
char
*p = NULL;的意思是将p
初始化
为NULL(和'\0', 0)的意思一样,防止使用野指针p。不过
char
*p = "";又是什么意思呢? main.c测试如下:
char
*p = ""; printf("+++++++0x%08x\n", p);
char
a[] = "abc" 与
char
*p = "def"区别浅析
char
a[] = "abc"; 中a是数组名,编译时为其分配4个
char
单元,前3个单元用“abc"中的字符对应
初始化
,最后一个存放'\0'。
char
*p = "def"; 在编译时先生成"def"字符串常量,存放在常量区,并将首地址(c的地址)赋给
char
*型指针变量p。 从以上可知,二者的区别在于:数组名a和指针变量p虽然本质上都是地址,但是数组名a它的地址是不变的,即它是一...
C语言之数组
初始化
对
char
来说,0就对应了ASCII空字符(NULL),其实就是’\0’,判断一个字符串是否结束就是看是否遇到’\0’。——如果
初始化
表达式的个数比数组元素少,则对外部变量、静态变量和自动变量来说,没有
初始化
的表达式的元素将被
初始化
为0。'0’对应ASCII码的48,遇到字符转数字,例如把’8’转为数字8,可以:“ 8+‘0’”。为什么这个操作会
初始化
char
数组?它是指把
100
个元素全部置为0吗?
关于
char
数组
初始化
的一些细节
#include
#include
int main() { int i;
char
s[
100
]; memset((void *)s,0,
100
); if(s == NULL) { printf("s==NULL;s=%s;/n",s); } else { printf("s!=NULL;s=%s;/n",s); } for(i =0;i<
100
;i++) { printf("s[%d]
C语言
70,019
社区成员
243,267
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章