A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© gaoxinglei123 中级黑马   /  2014-4-26 18:49  /  1188 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 gaoxinglei123 于 2014-4-27 21:33 编辑

int a[5] = {1,2};未赋值的元素会自动补0;
char a[5]=  {'1','2'};未赋值的也自动补0?补0的话 转化为字符'\0' 。直接就等于定义了一个字符串了么?

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

3 个回复

倒序浏览
自己动手做的实验, 在xcode 环境中,
int a[5]; char b[5]; // 没有初始化;
if (a[4]==0 && b[4]=='\0')
     printf ("确实默认初始化为0");

输出结果---》 确实默认初始化为0
回复 使用道具 举报
char a[5]={'1','2'};
变成  char a[5]={'1','2',0,0,0};
又因为char字符在内存中以对应的ASCII码的0,1形式存储,‘\0'在内存中就是0,所以这里确实相当于一个字符串,即‘1’+‘2’+‘\0’
回复 使用道具 举报

这是我在虚拟机上做的。
可以看出,没定义的会赋值0
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马