gpt4 book ai didi

c++ - 表达式中的赋值?

转载 作者:行者123 更新时间:2023-11-30 01:37:43 26 4
gpt4 key购买 nike

这段代码相当于什么?

int sec, mins, hours, days;
cin >> sec;
sec -= (60 * 60 * 24) * (hours = sec / (60 * 60 * 24));
sec -= (60 * 60) * (days = sec / (60 * 60));
sec -= 60 * (mins = sec / 60);

这段代码是我 friend 写的,用来计算输入的天数、小时数、分钟数、秒数,以秒为单位。这对我来说似乎很模棱两可。

sec -=  (60 * 60 * 24) * (hours = sec / (60 * 60 * 24));

为什么这行是什么意思?我对一个表达式中的两个赋值感到很困惑。嵌入式赋值在标准 C++ 中有效吗?不管整个代码。

最佳答案

线

sec -= (60 * 60 * 24) * (hours = sec / (60 * 60 * 24));

相当于

hours = sec / (60 * 60 * 24);
sec -= (60 * 60 * 24) * hours;

构造 (a = b) 被认为是一个返回值 b表达式。下面是几个等效表达式的示例:

5
4 + 1
2 * 2 + 1
2 * 2 + (a = 1)

一切顺利!那就是说...不要编写这样的代码。

关于c++ - 表达式中的赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49186030/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com