C语言小题:关于数组长度和字符串长度

[复制链接]
查看11 | 回复4 | 2009-4-24 11:14:17 | 显示全部楼层 |阅读模式
char a[]="1234567";
char b[]={'1','2','3','4','5','6','7'};
字符串a的长度为7 数组长度为8
字符串b的长度为7 数组长度不确定
对吗?

回复

使用道具 举报

千问 | 2009-4-24 11:14:17 | 显示全部楼层
方法: 1)逐个元素进行赋初值。例如: chara[12]={'G','o','o','d',' ','M','o','r','n','i','n','g'}; 采用这种方式对字符数组初始化,可以不包括结束标志,这是合法的。但在对数组整体输出时系统无法判断字符串是否结束,输出结果会存在问题。因此通常人为的加上‘\0’。上例做如下改动更合理:chara[13]={'G','o','o','d',' ','M','o','r','n','i','n','g','\0'}; 2)用字符串常量来初始化字符数组: chara[]="Good Morning";或chara[]={"Good Morn...
回复

使用道具 举报

千问 | 2009-4-24 11:14:17 | 显示全部楼层
a是对的b不对,只有给出全部元素的数组才允许那么赋值所以长度是7数组长也是7...
回复

使用道具 举报

千问 | 2009-4-24 11:14:17 | 显示全部楼层
char b[]={'1','2','3','4','5','6','7'}; 应该长度为7阿,不然 b i可以大于6??i应该是由0到6,在内存里也是连续的...
回复

使用道具 举报

千问 | 2009-4-24 11:14:17 | 显示全部楼层
a[2]={"ab"};就是字符数正好等于元素数时,系统怎么编译?...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行