C语言中的顺序点
1.每个完整表达式结束后,即分号后面
2.&&,||,三木运算符(?:),以及逗号表达式的每一个运算对象计算之后
3.函数调用中对所有实际参数的求值完成之后(进入函数体之前)
https://blog.csdn.net/baidu_25773927/article/details/50520610
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int k = 2;
int a = 1;
k = k++ + k++;
printf("k = %d\n",k);
#include <stdlib.h>
int main(int argc, char *argv[])
{
int k = 2;
int a = 1;
k = k++ + k++;
printf("k = %d\n",k);
if(a--&&a)
{
printf("a = %d\n",a);
}
system("PAUSE");
return 0;
}
{
printf("a = %d\n",a);
}
system("PAUSE");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int f(int i, int j)
{
printf("%d, %d\n", i, j);
}
#include <stdlib.h>
int f(int i, int j)
{
printf("%d, %d\n", i, j);
}
int main(int argc, char *argv[])
{
int k = 1;
{
int k = 1;
f(k, k++);
printf("%d\n", k);
system("PAUSE");
return 0;
}
输出结果
//2,1
//21234567891011121314151617181920
system("PAUSE");
return 0;
}
输出结果
//2,1
//21234567891011121314151617181920
也就是 i =2,j = 1, k = 2
之前提到实参在传入函数之前对实参的求值完成之后是一个顺序点,也就是在进行值传递的时候K已经是2了,
—
之前提到实参在传入函数之前对实参的求值完成之后是一个顺序点,也就是在进行值传递的时候K已经是2了,
—