c - a[j++] =++i 的等效表达式,不使用前置或后置增量运算符

标签 c post-increment pre-increment

所以我在琢磨这个问题(这是一道作业/考试复习题):

写下 a[j++] = ++i; 的等效表达式不使用前/后增量运算符。如果不能提供这样的表达式,请解释原因。

我能够想出以下内容:

a[j] = i+=1;<br/> j+=1;

除了使用 j+=1; 之外,我想不出在 a[] 中将 j 作为后增量递增的方法之后我相信会导致无法提供这样的表达式的答案(因为它的两行代码而不是一行)并且只是解释你不能在没有后增量运算符的情况下后增量。

我是否遗漏了什么或者我是否正确?我只是想仔细检查一下。提前致谢。

编辑:感谢@James McNellis,他提供了一种使用方式 a[(j+=1)-1] = (i+=1);

最佳答案

这又丑又丑,但无论如何:

a[(j += 1) - 1] = (i += 1);

关于c - a[j++] =++i 的等效表达式,不使用前置或后置增量运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5086811/

相关文章:

c - 如何从cgo中嵌入的C代码调用Go函数

Java:操作顺序、增量后澄清

c - C程序中的可变长度参数

c++ - 为什么我在组合增量运算符时得到 "error: expression is not assignable"

java - 增量后/增量前混淆

关于指针和多维数组的困惑

概念插值算法

c - 我应该使用什么编译器作为自学编译器原理技术的案例研究

c - 在 printf 中发布增量和指针

java - 如何a=3和b=4?