最近温习指针部分,看到一个很有趣的问题,想用一个函数得到两数的多种结果。
其基本原理就是函数参数指针传递传的是地址;形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。反过来就是说实参能获取到经函数处理后的数据。
void Func(int x, int y, int* sum,int* differ,int* product)
{
*sum = x + y;
*differ = x - y;
*product = x*y;
}
int main()
{
int a, b;
cin >> a >> b;
int sum = 0;
int differ = 0;
int product = 0;
SumMinusFunc(a,b,&sum,&differ,&product);
cout << sum<<differ<<product;
}
最后简单分享自己的总结。
c/c++为什么使用指针?
-
指针能够有效的表示数据结构;
-
能动态分配内存、实现内存的自由管理,即快速有效操作内存;;
-
能比较方便使用字符串,便捷高效的使用数组;
-
值传递不如地址传递;
-
函数指针;简单分享下,并未深入。
int(*pFunc)(int,float);
// pFunc,该函数指针具有返回int类型,同时带有两个形参,int,float
//函数名所代表的含义就是一个函数入口地址(指针)
int GetServerThreadNumber(int,float)
pFunc = GetServerThreadNumber;//合法,可理解为函数名也是地址
pFunc = &GetServerThreadNumber;//合法,&可以省略