c中前缀和后缀运算符的操作
operation of prefix and postfix operators in c
对于此代码
int j=2;
int c=(j++)*(j++);
printf("%d\n",c);
我得到 c 的值为 6
而下面的代码
int j=2;
int c=(++j)*(++j);
printf("%d\n",c);
我得到 c 的值为 16
有人可以向我解释一下这个案例吗?
您同时修改了一个变量的值,并在表达式中使用了该变量。因此,您的代码表现出 未定义的行为 。未定义的行为就是这样;任何事情都可能发生。没有逻辑方法可以预测您编写的代码会产生什么值。
对于此代码
int j=2;
int c=(j++)*(j++);
printf("%d\n",c);
我得到 c 的值为 6
而下面的代码
int j=2;
int c=(++j)*(++j);
printf("%d\n",c);
我得到 c 的值为 16
有人可以向我解释一下这个案例吗?
您同时修改了一个变量的值,并在表达式中使用了该变量。因此,您的代码表现出 未定义的行为 。未定义的行为就是这样;任何事情都可能发生。没有逻辑方法可以预测您编写的代码会产生什么值。