gpt4 book ai didi

三元语句中的 C 逗号

转载 作者:太空狗 更新时间:2023-10-29 15:12:17 26 4
gpt4 key购买 nike

int m = 5, d = 12, y = 1975, val;
// May 12, 1975

谁能解释一下下面代码行中逗号运算符的功能/用途:

val = (d+=m<3?y--:y-2,23*m/9+d+4+y/4-y/100+y/400)%7;

above line由 Mike Keith 编写,用于计算给定日期(d = 日,m = 月,y = 年)的星期几。其中星期日 = 0,星期一 = 1,星期二 = 2,星期三 = 3,星期四 = 4,星期五 = 5,星期六 = 6。我知道如果 d+=m<3 为真,则执行 y--,否则执行 y-2。我不明白的是 y-2 后面的逗号的用途。

最佳答案

逗号操作符将要执行的表达式分开,就像;一样。但是对于 ,,它们构成了一个完整的表达式,计算结果为最后一个子表达式的值。例如

int i = 1;
int j = (++i, i*2);
printf("%i", j)

打印出 4.

例如,它可以用在 for 表达式中,其中 3 个表达式需要在 header 中。例如

for(i = 0, j = 0; i < n; i++, j++)

关于三元语句中的 C 逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28520421/

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