读书人

指针传递函数参数的简单有关问题

发布时间: 2012-03-31 13:13:26 作者: rapoo

指针传递函数参数的简单问题
求教各位高人:
[code=C/C++][/code]
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
int a=3, b=4;
cout<<"主程序中交换前a="<<a<<"b="<<b<<endl;
swap_test(&a,&b);
cout<<"主程序中交换后a="<<a<<"b="<<b<<endl;
return 0;
}
void swap_test(int *a, int *b)
{
int c;
cout<<"函数中交换前a="<<a<<"b="<<b<<endl;
c=*a;
*a=*b;
*b=c;
cout<<"函数交换后a="<<a<<"b="<<b<<endl;

}
这段程序在执行后,总是报错说swap_test找不到标识符???还有如果把整个swap_test函数放入int main()里的话,又会出现swap_test:本地函数的定义是非法的!!
这是为什么啊???

[解决办法]

C/C++ code
#include <stdio.h>#include <iostream>using namespace std;void swap_test(int *a, int *b);//函数提前声明 即出现在主函数前面int main(){    int a=3, b=4;    cout<<"主程序中交换前a="<<a<<"b="<<b<<endl;    swap_test(&a,&b);    cout<<"主程序中交换后a="<<a<<"b="<<b<<endl;    return 0;}void swap_test(int *a, int *b){    int c;    cout<<"函数中交换前a="<<a<<"b="<<b<<endl;    c=*a;    *a=*b;    *b=c;    cout<<"函数交换后a="<<a<<"b="<<b<<endl;}
[解决办法]
void swap_test(int *a, int *b)
{
int c;
cout<<"函数中交换前a="<<a<<"b="<<b<<endl;
c=*a;
*a=*b;
*b=c;
cout<<"函数交换后a="<<a<<"b="<<b<<endl;

}
放在main()函数前,就不会有错了
[解决办法]
C/C++ code
#include <stdio.h>#include <iostream>using namespace std;void swap_test(int *a, int *b){int c;cout<<"函数中交换前a="<<a<<"b="<<b<<endl;c=*a;*a=*b;*b=c;cout<<"函数交换后a="<<a<<"b="<<b<<endl;}int main(){int a=3, b=4;cout<<"主程序中交换前a="<<a<<"b="<<b<<endl;swap_test(&a,&b);cout<<"主程序中交换后a="<<a<<"b="<<b<<endl;return 0;} 

读书人网 >C++

热点推荐