7.4.2 通过指针得到多于1个的回传值
理论上说,C++函数最多只能有1个返回值(return返回值),因此,由函数返回数组似乎是不可能的,实际上,使用指针可以使函数得到多于1个回传值。
1.返回指针变量
返回指针变量,便可以对指针指向的一片内存区域进行读写,需要注意的是不可返回指向栈内存的指针,否则会出现“野指针”内存错误。
2.通过指针参数修改多个变量的值,见代码7.15
代码7.15 通过指针参数修改多个变量的值CallByPointerSample
<————————————文件名:example715.cpp———————————————> 01 #include<iostream> 02 using namespace std; 03 void Calc(float a,float b,floats,floatl)//传递指针参数可实现对多个变量的修改 04 { 05 s=ab; 06 l=2(a+b); 07 } 08 int main() 09 { 10 float chang,kuan,mj,zc;//4个float型变量,分别代表长、宽、面积和周长 11 cout<<"请输入矩形的长和宽:"<<endl; 12 cin>>chang>>kuan;//接收用户输入的长和宽 13 Calc(chang,kuan,&mj,&zc);//计算面积和周长 14 cout<<"面积:"<<mj<<endl; 15 cout<<"周长:"<<zc<<endl; 16 return 0; 17 }
输出结果如下所示。
请输入矩形的长和宽: 3 7 面积:21 周长:20
【代码解析】代码第3行,通过传递指针调用实现了函数中对多个参数的操作,这样,便可不受“返回值至多有一个”的限制。
说明
每个链表都维护着一个指向第一个元素的指针,该指针可用作函数的参数或返回,以方便对链表中元素的处理,这在本质上和数组指针是相同的。