设为首页
收藏本站
用户名
Email
自动登录
找回密码
密码
登录
注册
快捷导航
平台
Portal
论坛
BBS
文库
项目
群组
Group
我的博客
Space
搜索
搜索
热搜:
shell
linux
mysql
本版
用户
LinuxSir.cn,穿越时空的Linuxsir!
»
论坛
›
编程开发讨论区 —— LinuxSir.cn
›
Linux 程序设计专题讨论
›
结果怎么不一样了??
1
2
3
4
/ 4 页
下一页
返回列表
查看:
1818
|
回复:
37
结果怎么不一样了??
[复制链接]
Snoopy
Snoopy
当前离线
积分
7263
IP卡
狗仔卡
发表于 2003-6-10 10:47:42
|
显示全部楼层
|
阅读模式
main()
{
int i,a[10];
for(i=0;i<9;i++)
a
=i;
for(i=9;i>0;i--)
printf("%d",a
);
}
输出的结果是:
107379260887654321
可书上写的结果是 9 8 7 6 5 4 3 2 1
这什么原因啊???
还有一个, (i++)+(i++)+(i++)如果i=3,书上的结果是12
可我的是9 -1073750472 134513486[root@Snoopy hello]#
怎么这样啊 ,,问题出在哪里呢??
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
viper
viper
当前离线
积分
443
IP卡
狗仔卡
发表于 2003-6-10 11:15:23
|
显示全部楼层
第一个,你的条件是 i<9,所以 a[9] 没有初始化,你看你的结果从8开始是正确的。
回复
支持
反对
使用道具
举报
显身卡
kj501
kj501
当前离线
积分
5317
IP卡
狗仔卡
发表于 2003-6-10 11:16:49
|
显示全部楼层
看看你的输出结果:
1073792608
87654321
那里给a[9]赋值了?
回复
支持
反对
使用道具
举报
显身卡
Sworder
Sworder
当前离线
积分
935
IP卡
狗仔卡
发表于 2003-6-10 12:08:12
|
显示全部楼层
试图接触为定义的内存,杀!
回复
支持
反对
使用道具
举报
显身卡
libinary
libinary
当前离线
积分
1502
IP卡
狗仔卡
发表于 2003-6-10 12:19:40
|
显示全部楼层
(i++)+(i++)+(i++)
这种表达式最好不要写,根据C语言标准这种表达式的计算顺序是未定义的,也就是说它的计算顺序是和实现相关的,不同的编译器会有不同的结果,就像f(x) + g(x),先调用f(x)或g(x)是不一定的,和编译器有关。
你看的什么书呀?如果书上给出了这种表达式,并且说应该等于多少,那么这本书就不值得看,谁知道还有多少错误。
回复
支持
反对
使用道具
举报
显身卡
无双
无双
当前离线
积分
1799
IP卡
狗仔卡
发表于 2003-6-10 12:27:47
|
显示全部楼层
上面这个表达式确实不应该写
程序是写给别人看的
如果大家看了都觉得应该是这样
但结果如果不是的话那么就会出现bug
好的代码应该是让大家看了知道
肯定是这样
回复
支持
反对
使用道具
举报
显身卡
Snoopy
Snoopy
当前离线
积分
7263
IP卡
狗仔卡
楼主
|
发表于 2003-6-10 14:00:13
|
显示全部楼层
这个版的人太好了,呵呵 ,,,谢谢你们,,,,
回复
支持
反对
使用道具
举报
显身卡
Snoopy
Snoopy
当前离线
积分
7263
IP卡
狗仔卡
楼主
|
发表于 2003-6-10 14:22:46
|
显示全部楼层
我制造了个makefile后,是用make编译,然后./***的
不知道这会不会影响编译的过程,结果老是不一样也,,,
ain()
{
int a[10]={0,1,2,3,4,5,6,7,8,9};
printf("%d",a);
}
输出的应该是1,2,3,4,5,6,7,8,9 这是我自己的想法,不是书上的
结果却是,,-1073751808
是不是我操作方面问题不对头啊???
回复
支持
反对
使用道具
举报
显身卡
Sworder
Sworder
当前离线
积分
935
IP卡
狗仔卡
发表于 2003-6-10 14:24:27
|
显示全部楼层
我靠!你这样输出的是a[0]的内存地址!
又一个非法使用内存,杀!
回复
支持
反对
使用道具
举报
显身卡
Snoopy
Snoopy
当前离线
积分
7263
IP卡
狗仔卡
楼主
|
发表于 2003-6-10 14:35:32
|
显示全部楼层
非法使用内存,可我不知道怎样使用才合法!!
可好奇怪,这每一次运行结果都不一样!!!!
而你说的输出的是a[0]的内存地址????不懂啊,,,看书看了一半
还不能全理解,
回复
支持
反对
使用道具
举报
显身卡
下一页 »
1
2
3
4
/ 4 页
下一页
返回列表
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖后跳转到最后一页
Copyright © 2002-2023
LinuxSir.cn
(http://www.linuxsir.cn/) 版权所有 All Rights Reserved.
Powered by
RedflagLinux!
技术支持:
中科红旗
|
京ICP备19024520号
快速回复
返回顶部
返回列表