简单的c语言

[复制链接]
查看11 | 回复5 | 2009-4-25 12:36:44 | 显示全部楼层 |阅读模式
char a[7]="1234567";
数组长度是多少
char a[7]={'1','2','3','4','5','6','7'};
如果是这样赋值
就不存在\0吗

回复

使用道具 举报

千问 | 2009-4-25 12:36:44 | 显示全部楼层
上面出错了我在VC试验了一下,编译不通过“”是字符串赋值,你定义的字符数组长度为7,而字符串“1234567”长度为8,所以编译出错,越界赋值了应该改成:char a[7]={'1','2','3','4','5','6','7'};或者 char a[8]=“1234567”;...
回复

使用道具 举报

千问 | 2009-4-25 12:36:44 | 显示全部楼层
第一个用strlen求是7,但是该字串的实际大小是8,数组爆掉了第二个,没有\0,就是7...
回复

使用道具 举报

千问 | 2009-4-25 12:36:44 | 显示全部楼层
这个一定是错误的啊 会造成越界的char a[8]="1234567"; 应该是这样的啊因为“1234567”他后面还有个结束字符的‘\0’所以你不能这么定义的,长度的话‘\0’是不计算在内的...
回复

使用道具 举报

千问 | 2009-4-25 12:36:44 | 显示全部楼层
\0没有地方放所以后面出现软吗...
回复

使用道具 举报

千问 | 2009-4-25 12:36:44 | 显示全部楼层
长度是 7,应该是"123456\0",最后一个7则没有被记录下来...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行