| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3522 人关注过本帖
标题:如何输出N个字符串,用数组定义?
只看楼主 加入收藏
a745043791
Rank: 4
等 级:业余侠客
帖 子:95
专家分:260
注 册:2012-2-12
收藏
得分:2 
我运行了一下,问题应该是N定义得太小了,超出长度会发生越界问题,侵犯了别的程序,windows会发出警告。你把N定义大点吧
2012-08-07 18:58
姻脂梦
Rank: 6Rank: 6
等 级:侠之大者
帖 子:264
专家分:424
注 册:2012-7-3
收藏
得分:2 
复习一下数组元素
2012-08-07 19:32
aglence
Rank: 1
等 级:新手上路
帖 子:63
专家分:2
注 册:2012-7-6
收藏
得分:0 
回复 11楼 a745043791
这个正确,但实际原因我不知道
2012-08-07 19:44
dsl975708035
Rank: 3Rank: 3
来 自:平凉
等 级:论坛游侠
帖 子:101
专家分:152
注 册:2012-8-3
收藏
得分:0 
为何我运行正常??code::blocksO(当然去掉了i)

唉,初三要停停了,舍不得啊。。
2012-08-07 20:16
ahxx318
Rank: 1
等 级:新手上路
帖 子:1
专家分:2
注 册:2012-8-7
收藏
得分:2 
运行无误!!
2012-08-07 20:51
aglence
Rank: 1
等 级:新手上路
帖 子:63
专家分:2
注 册:2012-7-6
收藏
得分:0 
你输入的字符超过N-1的时候试下,就会运行出错
2012-08-07 21:06
aglence
Rank: 1
等 级:新手上路
帖 子:63
专家分:2
注 册:2012-7-6
收藏
得分:0 
你输入的字符超过一个值的时候试下,就会运行出错,N值为5的时候,输入超过7个字符的时候就会出错
2012-08-07 21:10
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
数组越界了怎么不该崩溃?

授人以渔,不授人以鱼。
2012-08-07 21:18
aglence
Rank: 1
等 级:新手上路
帖 子:63
专家分:2
注 册:2012-7-6
收藏
得分:0 
但是我在输入6个字符的时候有没有越界呢?这个问题真头疼,N值不是只是象征性的么,主要还是看具体输入了多少?
2012-08-07 21:23
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
所以C++要说C宏语法的不是。

你#define N 3,那实际上只是标识一个常数,里面定义的三个数组,都是a[3]、b[3]、c[3],只能容纳2个char(外加一个空字符'\0')。C/C++是不检查越界的,编译通过,但运行时若输入了超越边界的字符,系统就强制这个程序结束。不要以为N是变量,它从头至尾都被编译器用3来替换了代码文本中的字符N,这是字符搜索替换的操作,在编译器实际编译程序代码之前进行,此时C的语法还没有起作用——因此C++强烈不建议程序员用宏,除了条件编译,最好不要养成写宏的习惯。

[ 本帖最后由 TonyDeng 于 2012-8-7 21:35 编辑 ]

授人以渔,不授人以鱼。
2012-08-07 21:30
快速回复:如何输出N个字符串,用数组定义?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015861 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved