| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 11750 人关注过本帖, 8 人收藏
标题:[原创]C的关键字——const的理解和用法
取消只看楼主 加入收藏
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
main()
{
char str[3]="abc";
printf("%s",str);
}
//这是论坛上的资料?我倒没看。

char str[3]="abc"; //对于这个表达式要根据不同的编译器来决定它的结果;
//在DEV-CPP和GCC下只是对字符数组的范围大小提出警告
//运行并没有错误;在VC下是提出错误信息的;
//毕竟,标准并没有对这种情况做明确规定;
//在DEV-CPP和GCC对于字符串长度超过字符数组长度一律
//把字符串后面超出的部分去掉不显示;

我的原则很简单:不做不喜欢的事!
2006-06-03 18:28
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
main()
{
char str[3]="abc";
printf("%s",str);
}
汗一个,刚用DEV-CPP运行了上面代码,abc都打印出来了但后面出现了乱码;咋的和我以前打印的类似的代码的结果不一样。。。

我的原则很简单:不做不喜欢的事!
2006-06-03 18:51
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
以下是引用穆扬在2006-6-3 21:36:00的发言:

我最关心的是这是c的一个规则还是编译器的自由选择

这个问题C标准中并没有明确规定应该怎样处理,留给了编译器了。


我的原则很简单:不做不喜欢的事!
2006-06-03 21:40
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
以下是引用菜鸟上路在2006-6-3 21:42:00的发言:

为什么这样就不会出现乱码?
打印结果为:abc

这段代码 = 》char str[3]="abc";
str[3]=0;

这样并没有什么意义,数组下标已经超出了范围,所以打印出那样的结果应该是运气好而已。


我的原则很简单:不做不喜欢的事!
2006-06-03 21:48
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
以下是引用菜鸟上路在2006-6-3 21:54:00的发言:

我开始也这样认为,但是我整整试了30次,都是这样!

不是,不是说每试一次结果都不一样。运气好只是说编译器刚好对这种情况是这样处理的。
编译器一般并没有对数组下标是否越界提出错误信息,这一点要自己检查。


我的原则很简单:不做不喜欢的事!
2006-06-03 22:10
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
以下是引用菜鸟上路在2006-6-3 22:12:00的发言:

呵呵,本人愚昧,见笑了,现在懂了!

没事。大家有问题就一起讨论,并没有所谓“谁教谁”。


我的原则很简单:不做不喜欢的事!
2006-06-03 22:14
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
可笑的是那篇小文把编译器的一个选择当成c语言的一种规则来解读
----------------------
哪篇小文?

char c[3]="abc";
是一个错误的字符数组赋初值的语句,没有任何人同样包括c语言会为错误的语句负责,同样也不负责预测它产生的一切后果。
-----------------------
我的想法是:这个是数组越界了,肯定是错误的!至于怎样去处理那就要根据编译器来处理了,然而,对这个问题编译器的处理却往往是人无法预料的。编译器不负责对数组下标是否越界做检查。

我的原则很简单:不做不喜欢的事!
2006-06-03 22:31
快速回复:[原创]C的关键字——const的理解和用法
数据加载中...
 
   



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

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