C/C++ 参数载入问题
2015-03-12 23:31
92 查看
C/C++在载入参数的时候,是从右向左进行匹配,载入的。有时候这很重要,比如
上面在ubuntu上的最后一行会输出同一个值,这是因为由于载入从右向左,所以它前面被传递的值都被覆盖了。
诡异的是这段代码在windows环境下却会是三个不同值,有可能是微软的编译器优化方式不同和linux GNU的编译器采取了不同的方式来处理这种参数载入。
有大神指点一下么?
#include <iostream> #include <iostream> #include <iomanip> using namespace std; int main() { int t,i,j,n; cin>>t; for(i=0;i<t;i++) { int a[100]; cin>>n; for(j=0;j<n;j++) { cin>>a[j]; } int b,c,d; cin>>b>>c>>d; int *p; int *p1,*p2; p1=&a[n/2]; p2=&a[n/2]; cout<<*(--p1)<<" "<<*(++p2)<<" "<<endl; cout<<*(p=&a[b-1])<<" "<<*(p=&a[c-1])<<" "<<*(p=&a[d-1])<<" "<<endl; } return 0; }
上面在ubuntu上的最后一行会输出同一个值,这是因为由于载入从右向左,所以它前面被传递的值都被覆盖了。
诡异的是这段代码在windows环境下却会是三个不同值,有可能是微软的编译器优化方式不同和linux GNU的编译器采取了不同的方式来处理这种参数载入。
有大神指点一下么?
相关文章推荐
- 关于C++模板封装的问题(关于C++模板参数的声明)
- C++中函数参数的对象值传递问题
- C++关于参数为const引用类型的函数调用参数成员函数的一个问题
- C++与C#对比学习:函数(一)C#参数传递存在的问题
- C#调用C++dll 结构体参数传递问题
- c#调用API 和c++dll的参数问题
- C++中参数传递问题
- c++中类对象直接作为函数参数所引起的问题。
- C++里面的重写带有默认参数的虚函数的问题
- 有关C++参数传值的一个问题探讨
- C++的继承参数问题
- c++之指针作为函数参数传递的问题
- c++ 函数参数问题
- C/C++语言中参数的传值问题
- 【C++学习点滴】关于参数传递的问题
- m文件转换为C/C++文件的编译、绘图、参数、打包问题总结
- C#调用C++写的dll 函数传递参数问题,请有经验的人详细描述
- C++: VC6转VC8出现问题:error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *”
- C#调用C++编写的DLL函数各种参数传递问题
- C++中关于二维数组作为函数参数传递的问题