#include “stdio.h”void f(int i,int j)
{printf("%d ,%d n",i,j);
}int main()
{int k=1;f(k,k++);return 0;
}
结果未定义。
参数入栈顺序是和具体编译器实现相关的。
C方式参数入栈顺序(从右至左)的好处就是可以动态变化参数个数。通过栈堆分析可知,自左向右的入栈方式,最前面的参数被压在栈底。除非知道参数个数,否则是无法通过栈指针的相对位移求得最左边的参数。这样就变成了左边参数的个数不确定,正好和动态参数个数的方向相反。
因此,C语言函数参数采用自右向左的入栈顺序,主要原因是为了支持可变长参数形式。
#include <stdio.h>int main(){double a,b,c;scanf("%f,%f,%f",&a,&b,&c);printf("%f%f%fn",a,b,c);return 0;
}
double使用lf float 使用f
本文发布于:2024-02-05 01:23:46,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170720859561768.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |