#include<iostream.h>int * fun(int a,int b)
{
if(a>b)return &a;
return &b;
}int neg(int n){return -n;}void main()
{
int *p;
p=fun(3,5);
int k=neg(9);
cout<<*p;
}为什么输出是9?????????
{
if(a>b)return &a;
return &b;
}int neg(int n){return -n;}void main()
{
int *p;
p=fun(3,5);
int k=neg(9);
cout<<*p;
}为什么输出是9?????????
解决方案 »
- VC程序,性能分析的工具和方法主要都有哪些
- 定义的扩展CFileDialog,为啥一改变文件路径,很多东西就看不见了呢?请高手指点指点,怎么解决了?
- vc和ado+ sql2000怎样支持汉字字段名,在线等...
- 请问如何定位到CListCtrl的某一项,并给这一项加亮?谢谢
- 讨论,用什么类型存储一组变长的值比较好?
- 如何对vfp编译的exe文件进行反编译加密?紧急!
- 怎样在多文档的子文档中显示BMP图像??????
- 并口实时读写问题
- MFC中listcontrol控件手绘了几列复选框,如何解决这几列复选框互斥的问题呢?
- 请教ShellExt的ContextMenu(上下文菜单)问题
- Windows NT和XP的区别是什么?
- picture控件上动态显示图片
{
if(a>b)return &a;
return &b;
}你要返回参数,需要通过 指针或者引用。否则 局部变量在函数外面无效。int * fun(int *a,int *b)
{
if(*a > *b)
{
return a;
}
else
{
return b;
}
}
{
return a > b ? a : b:
}
直接返回值就可以,你为何要返回地址!!
#include<iostream.h>int * fun(int &a,int &b)
{
if(a>b)return &a;
return &b;
}int neg(int n){return -n;}void main()
{
int *p;
int a = 3,b = 5;
p=fun(a,b);
int k=neg(9);
cout<<*p;
}
这样就行了,用引用或指针来传递就行了
int * fun(int a,int b)函数传入的是3,5的值,a和b接受后其值就是3,5
&a,&b则是局部变量的地址,返回后当然错了