函数调用的一个注意点。
快读很快,所以我们经常用快读。
int read()
{
int x = 0, f = 1;
char ch = getchar();
while(ch < '0' || ch > '9')
{
if(ch == '-') f = -1;
ch = getchar();
}
while(ch <= '9' && ch >= '0')
x = (x << 1) + (x << 3) + (ch ^ 48), ch = getchar();
return x * f;
}
在以某种格式调用函数时(如下)
void ansprint(int x, int y)
{
printf("%d %d\n", x, y);
}
int main()
{
ansprint(read(), read());
return 0;
}
直接在调用函数时输入,会出现问题,即 上述代码中先输出了x后输出y
why?
一开始我以为是逗号表达式先执行后面的句子
但
实际上是因为函数调用时是以栈的形式,故先执行后面的,在执行前面的。
警示后人