社区
C语言
帖子详情
“=”运算符的结合性, 请教功力深厚者。
leonatcs
2005-05-11 12:06:44
“=”运算符的结合性:
设pf所指的txt文件内容为:18,
则:q = (fgetc(pf)-48)*10 + fgetc(pf)-48
与q = (fgetc(pf)-48)*10 + (fgetc(pf)-48) 的值不同,前者为18,后者为81。
这是怎么回事?
请讲详细些,谢谢!
...全文
182
10
打赏
收藏
“=”运算符的结合性, 请教功力深厚者。
“=”运算符的结合性: 设pf所指的txt文件内容为:18, 则:q = (fgetc(pf)-48)*10 + fgetc(pf)-48 与q = (fgetc(pf)-48)*10 + (fgetc(pf)-48) 的值不同,前者为18,后者为81。 这是怎么回事? 请讲详细些,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
leonatcs
2005-05-11
打赏
举报
回复
我在实际编程的时候发现不同啊。
(BCB6下。)
llmsn
2005-05-11
打赏
举报
回复
照上面的式子看起来应该是相同的.
leonatcs
2005-05-11
打赏
举报
回复
to whyglinux(山青水秀)
是和等号的结合性没关系,应该说是赋值表达式的运算顺序。
谢谢!兄台功力果然深厚:)
leonatcs
2005-05-11
打赏
举报
回复
to piaozi2003()
the 31 you mentioned is a Hex number, which is different from a Dec number.
zhaoliang_chen
2005-05-11
打赏
举报
回复
up
piaozi2003
2005-05-11
打赏
举报
回复
楼主的题目本身就有问题,fgetc读取一个字符,和整数进行运算,'1'=31,'8'=38,
怎么算也算不出18和81这两个数字
bsnhk
2005-05-11
打赏
举报
回复
to whyglinux(山青水秀) :
强!!!!!!
lzwei3842
2005-05-11
打赏
举报
回复
学习
whyglinux
2005-05-11
打赏
举报
回复
你遇到的这个问题与“=”运算符无关。
出现这个问题的原因在于:你的这个表达式的运算结果取决于操作数的求值顺序。
但是C/C++标准没有对操作数的求值顺序作出规定,而是允许各个编译器根据情况灵活处理。所以,对于你上面提供的表达式,你无法预计哪一个fgetc(pf)先被执行。
因此,我们说如果一个表达式的结果依赖于操作数的求值顺序,那这个表达式的行为(即结果)是无定义的;而使用标准无定义的行为是错误的,所以你应该修改你的表达式,使其与操作数的求值顺序无关。
august1983
2005-05-11
打赏
举报
回复
我觉得你不应该在等式里面用FGETC这个函数;
你可以试试 TMP = FGETC(PF);然后把TMP 放到等式里面,结果应该一样.
FGETC这个函数挪动了你的指针造成这种情况,以前我也遇到过
以上为个人观点,没有经过编译
Java笔试题含答案
112、表达式语言(EL)支持哪些
运算符
? 113、Java Web开发的Model 1和Model 2分别指的是什么? 114、Servlet 3中的异步处理指的是什么? 115、如何在基于Java的Web项目中实现文件上传和下载? 116、服务器收到...
《Java170道面试笔试题全面含答案》
112、表达式语言(EL)支持哪些
运算符
? 113、Java Web开发的Model 1和Model 2分别指的是什么? 114、Servlet 3中的异步处理指的是什么? 115、如何在基于Java的Web项目中实现文件上传和下载? 116、服务器收到用户...
java面试题(一)
继承让变化中的软件系统有了一定的延续
性
,同时继承也是封装程序中可变因素的重要手段。 - 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口。面向对象的本质就是将现实世界...
一些重要的面试题!
可见
性
指的是在一个线程中对该变量的修改会马上由工作内存(Work Memory)写回主内存(Main Memory),所以会马上反应在其它线程的读取操作中。顺便一提,工作内存和主内存可以近似理解为实际电脑中的高速缓存和主存...
java面试题
答:方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态
性
,而后者实现的是运行时的多态
性
。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)...
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章