我没有面临任何问题。这个问题是关于C语言的
假设我有一个函数:
int func()
{
static int i = 1;
return(i++);
}
现在,我不想做
i++
(i+=1
),我想做i *= 42;
,但仍然返回乘法前的值。我想知道是否有一种方法可以像
i++
那样工作(在一个表达式中,取i
的值,然后再做i *= 42
)。 最佳答案
Postfix++
和--
是唯一修改对象并产生该对象以前值的C运算符。如果您想对除递增或递减1以外的任何值执行此操作,则必须将上一个值存储在临时值中。
如果要设计自己的语言,可以实现一个“反逗号”运算符,该运算符生成左操作数,而不是右操作数。(现有逗号运算符计算其左操作数,然后计算其右操作数,然后产生右操作数的值)。
例如,如果“反向逗号”拼写为,,
,则可以执行以下操作:
return i ,, i *= 42; /* THIS IS NOT C */
关于c - 与i++相同,但操作更复杂,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24966802/