作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在学习 C,所以我尝试了下面的代码并得到了 7,6
而不是 6,7
的输出。为什么?
#include <stdio.h>
int f1(int);
void main()
{
int b = 5;
printf("%d,%d", f1(b), f1(b));
}
int f1(int b)
{
static int n = 5;
n++;
return n;
}
最佳答案
在 C 语言中,函数参数的求值顺序是未指定。(注意这里没有未定义的行为;例如,不允许同时求值。)
通常参数的计算是从右到左,或从左到右。
根据经验,如果函数有副作用(就像您的情况一样),或者如果您两次传递相同的参数,则不要在函数参数列表中调用同一个函数两次要修改的调用站点(例如传递指针)。
关于c - 为什么我的程序从右到左计算参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56559231/
目前我正在使用 [self presentModalViewController :newVC animated:YES] 。我想从左/右/顶部/底部呈现带有推送效果的 newViewcontroll
我正在尝试实现“带有上一个和下一个的部分幻灯片”。这些部分的标记如下: Section 1 Section 2 Section 3 Prev Next 除具有 acti
我的问题与此处提出的问题几乎相同:question 不同的是,我想从右边切换第 2 位和第 4 位数字,而不是像另一个问题中那样从左边切换。所以在我的例子中最右边的数字是 1。示例:283926.67
我是一名优秀的程序员,十分优秀!