社区
C语言
帖子详情
输出为什么不是8,而是7?
wangzeba
2003-09-12 04:57:07
下面程序的输出为什么不是8,而是7?
#include<iostream>
using namespace std;
void main()
{
int a,x=4,y=25,z=2;
z=(--y/++x)*z--;
cout<<z;
}
...全文
36
10
打赏
收藏
输出为什么不是8,而是7?
下面程序的输出为什么不是8,而是7? #include using namespace std; void main() { int a,x=4,y=25,z=2; z=(--y/++x)*z--; cout<<z; }
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
TianGuangZao
2003-09-12
打赏
举报
回复
int a,x=4,y=25,z=2;
z=(--y/++x)*z--;
感觉没什么特别呀!基本功呀!估计老板不会反对吧!
首先 --, ++ 比 *, / 优先。
--y 表示本次操作前进行自减 1 运算,
++x 表示本次操作前进行自加 1 运算,
z-- 表示本次操作后进行自减 1 运算,
明白这些后,先来看看参与本次运算各个变量取值:
x = 5, y = 24, z = 2
z= (24/5)*2 = 8
然后 z 还要进行一次自减 1 运算: z = 7
robbinxiao
2003-09-12
打赏
举报
回复
这不就相当于(24/5)*2然后再--么,当然就是7了!
HaiFen
2003-09-12
打赏
举报
回复
这种问题,标准上说由实现定义,实际编程当中没有任何意义,只能拿给那些变态老师整整学生
Yssss1980
2003-09-12
打赏
举报
回复
啊
如果我写这么学术性的代码
估计要被我老板暴扁
这样的话我一定会丧失自信心
你说怎么办吧
lizycheng
2003-09-12
打赏
举报
回复
答案是7
nod
liyong446
2003-09-12
打赏
举报
回复
因为你写是z=(--y/++x)*z--;就如:z=(--y/++x)*z;z--;是这样的原因。
shornmao
2003-09-12
打赏
举报
回复
一个表达式中的子表达式的求值顺序是标准没有明确指出的,运算符的优先级不会改变这一点。
因此,标准中明确指出了:
在一个表达式中超过一次的修改某个变量(可存储的)的值,这样的代码是不可移植的。
按照这个规则,出乎达到数人意料的是,
i=i++,这样的代码,也是不可移植。
tonybaobao
2003-09-12
打赏
举报
回复
同一楼上。
l1ul1u
2003-09-12
打赏
举报
回复
z赋值之后还要做z--这一步
legend-never-die
2003-09-12
打赏
举报
回复
这和编译器有关系,如果是
a=(--y/++x)*z--;
就会是8
z=(--y/++x)*z--;
则z会与表达式中的z--一同进行--运算,原因还有待高手指教,:P
servlet
输出
中文显示为问号"??"的解决办法
这个问题解决办法很简单: 将 doGet或doPost的 response.setContentType("...); ...response.setContentType("... 或者改为response.setContentType("text/html;charset=GBK"); ...
2022-08-13:以下go语言代码
输出
什么?A:[5 6 7 1 2 3 4] B:[1 2 3 4 5 6 7] C:[4 5 6 7 1 2 3]。 package main import
如果最后不是赋值给 nums,而是使用 copy,结果就是 A 了。如果是nums = append(nums[:1], nums[0:len(nums)-k]…),结果就是[1 1 2 3 4 6 7],会影响原数组,因为底层数组是同一个。2022-08-13:以下go语言代码
输出
...
为什么会有多线程?什么是线程安全?如何保证线程安全?(带详细例子)
1. 为什么会有多线程? 2. 什么是线程安全?3. 怎么样保证线程安全?
STM32F4 TIM1 7路PWM信号
输出
本实验的主要目的不是表现ST芯片PWM功能的强大,而是要完成
输出
的精确计算。 【实验内容】
输出
7路PWM信号,并用示波器测量
输出
。 【实验原理】 1、时基单元初始化 TIM1和TIM8使用内部时钟时,时钟由APB2提供。...
HashMap 为什么在链表长度为 8 的时候转红黑树,为啥不能是 9 是 10?
这个问题是在面试某公司的时候面试官提的问题,当时没回答上来。归根到底还是因为自己复习基础...答案自然不是,为什么不是,看代码: /** * Replaces all linked nodes in bin at index for given hash unless ...
C语言
69,336
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章