社区
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;
}
...全文
38
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("text/html"); 增加一点点内容 response.setContentType("text/html;charset=gb2312"); 或者改为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
主要原因是 append 后的 nums 是新数组,它并不会影响 main 函数中的 nums。如果最后不是赋值给 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信号
输出
【实验目的】
输出
7路占空比不同的PWM信号是各个版本ST库必备的例子。本实验的主要目的不是表现ST芯片PWM功能的强大,而是要完成
输出
的精确计算。 【实验内容】
输出
7路PWM信号,并用示波器测量
输出
。 【实验原理】 1、时基单元初始化 TIM1和TIM8使用内部时钟时,时钟由APB2提供。但是定时器的时钟并不是直接由APB2提供,而是来自于输入为APB2的一
c语言
输出
字母是问号,关于C语言
输出
ASCII码128~255和有符号char型溢出的问题。此处大坑弄明白了后记录下来分享……...
以下代码在控制台正常
输出
会出现乱码#includeint main(){char a=197;printf("%c",a);return 0;}为什么呢?前提条件说明,C语言中char类型默认是有符号类型(范围是-128~127之间)首先这个197对应的字符是在ASCII表中存在的,就像0~255的ASCII表中显示的一样,之所以会
输出
问号或则其他不知名符号(乱码),是因为我们的电脑里面CMD默认...
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章