c - C 由于预增导致的错误输出
问题描述
下面是一个简单的 C 程序。源代码:
#include<stdio.h>
#define PRODUCT(x) ((x)*(x))
int main()
{
int i = 3, j, k , l;
j = PRODUCT(i+1);
k = PRODUCT(i++);
l = PRODUCT(++i);
printf("\n%d %d %d %d",i , j, k , l);
return 0;
}
输出 :
7 16 12 49
问题:为什么我打印的是 49 ,不是 42 吗?
解决方案
推荐阅读
- postgresql - 在从 CSV 进行 COPY 操作期间,无法用 null 替换破折号
- symfony - 如何记录所有 Guzzle 请求的响应时间
- api - 如何处理 REST 中的自定义操作?
- flutter - Flutter Firebase 通知给出多个错误
- react-native - 如何在我的反应本机代码中清除 redux 购物车
- reactjs - React Native - 如何更改一个元素的颜色?
- spring-boot - oauth2-oidc-sdk ParseException:“不接受无算法”
- javascript - 如何阻止我的团队在 React 中使用原始字符串作为 JSX 子项?
- regex - 在记事本++中以n个字符完成整个单词的拆分短语
- sql - MariaDB:COUNT DISTINCT 是否被窃听?