今天学习《从新手到高手C++全部精华教程》,http://www.iteye.com/topic/1126275
利用指针返回多值
因为函数只能有一个返回值(void算作空返回值),但是一个函数的功能往往比较复杂,怎样将函数中其他重要的参数也返回到主函数中呢?举例如下:定义一个返回值类型为int的func函数,该函数有三个int型的参数,第一个参数为接收键盘输入的值,第二个和第三个为计算得到的圆和正方形的面积。在主函数中,a首先作为接受键盘输入的参数,然后调用func函数,对输入的数字进行判断,若输入大于20000,那么此时a作为返回值,其为1,作为判断输入是否合法的标志。func函数的另外两个参数b,c都被定义为指针变量,用于接收主程序实参的地址。经过func函数的计算圆和正方形的面积之后,将结果保存在主函数实参的地址中,因此可以向主函数返回。使用引用则更加简单明了,具体原理和上篇博客《函数调用时的三种参数传递方式》中一样。
#include<iostream>
using namespace std;
int func(int a, int *b, int *c);
int main(){
int a, b, c;
cout<<”请输入一个数字,将作为圆的半径和正方形的边长”<<endl;
cin>>a;
check = func(a, &b, &c); //check接收的是func函数的返回值
if(check){
cout<<”您输入的数字超过计算范围!”<<endl;
}else{
cout<<”圆的面积:”<<b<<endl;
cout<<”正方形的面积:”<<c<<endl;
}
return 0;
}
int func(int a, int *b, int *c){
if(a>20000){
a = 1;
}else{
*b = a*a*3.14;
*c = a*a
a = 0;
}
return a;
}
利用引用返回多值 使程序更加易于阅读和维护
#include<iostream>
using namespace std;
int func(int a, int &b, int &c);
int main(){
int a, b, c;
cout<<"请输入一个数字,将作为圆的半径和正方形的边长"<<endl;
cin>>a;
int check = func(a, b, c); //check接收的是func函数的返回值
if(check){
cout<<"您输入的数字超过计算范围!"<<endl;
}else{
cout<<"圆的面积:"<<b<<endl;
cout<<"正方形的面积:"<<c<<endl;
}
return 0;
}
int func(int a, int &b, int &c){
if(a>20000){
a = 1;
}else{
b = a*a*3.14;
c = a*a;
a = 0;
}
return a;
}
分享到:
相关推荐
c语言利用指针求数组的最大值与最小值,下载资源,数组可扩展。
8.1 指针是什么 8.2 指针变量 8.3 通过指针引用数组 8.4 通过指针引用字符串 8.5 指向函数的指针 8.6 返回指针值的函数 8.7 指针数组和多重指针 8.8 动态内存分配与指向它的指针变量 8.9 有关指针的小结
8.1 指针是什么 8.2 指针变量 8.3 通过指针引用数组 8.4 通过指针引用字符串 8.5 指向函数的指针 8.6 返回指针值的函数 8.7 指针数组和多重指针 8.8 动态内存分配与指向它的指针变量 8.9 有关指针的小结
8.1 指针是什么 8.2 指针变量 8.3 通过指针引用数组 8.4 通过指针引用字符串 8.5 指向函数的指针 8.6 返回指针值的函数 8.7 指针数组和多重指针 8.8 动态内存分配与指向它的指针变量 8.9 有关指针的小结
8.1 指针是什么 8.2 指针变量 8.3 通过指针引用数组 8.4 通过指针引用字符串 8.5 指向函数的指针 8.6 返回指针值的函数 8.7 指针数组和多重指针 8.8 动态内存分配与指向它的指针变量 8.9 有关指针的小结
通过分析多重指针的时空局部有效性,利用独立可控数据的内存布局构造从异常指令到跳转指令的指针引用路径,能够快速收敛搜索域,提高控制流劫持成功率和判定准确率。实验结果表明,该方法适用于栈溢出、堆溢出、整型...
第8章 善于利用指针8.1 指针是什么8.2 指针变量8.3 通过指针引用数组8.4 通过指针引用字符串8.5 指向函数的指针8.6 返回指针值的函数8.7 指
针对目前大多数的函数调用关系分析工具无法分析函数指针、系统启动过程以及可加载模块的函数调用关系的现象,在CG-...实验结果表明,DCG-RTL能全面和准确地跟踪包括函数指针引用和可加载内核模块在内的函数调用关系。
DeviceCapabilities 利用这个函数可获得与一个设备的能力有关的信息 DocumentProperties 打印机配置控制函数 EndDocAPI 结束一个成功的打印作业 EndDocPrinter 在后台打印程序的级别指定一个文档的结束 EndPage ...
8.6返回指针值的函数 8.7指针数组和多重指针 8.7.1什么是指针数组 8.7.2指向指针数据的指针 8.7.3指针数组作main函数的形参 8.8动态内存分配与指向它的指针变量 8.8.1什么是内存的动态分配 8.8.2...
8.6返回指针值的函数276 8.7指针数组和多重指针279 8.7.1什么是指针数组 279 8.7.2指向指针数据的指针282 8.7.3指针数组作main函数的形参284 8.8动态内存分配与指向它的指针变量287 8.8.1什么是内存的动态分配287 ...
9.2.4 让函数返回多个值 9.3 传递对象 9.3.1 按值来传递对象 9.3.2 利用指针来传递对象 9.3.3 利用cost指针来传递对象 9.3.4 利用引用来传递对象 9.3.5 到底是使用引用还是指针 9.3.6 引用和指针可以一块用 9.4 引用...
实例092利用指针表达式操作遍历数组 实例093数组地址的表示方法 实例094指针和数组的常用方法 实例095结构指针遍历结构数组 实例096指针作为函数的参数 实例097多维数组的指针参数 实例098指针作为函数的返回值 实例...
9.2.4 让函数返回多个值 9.3 传递对象 9.3.1 按值来传递对象 9.3.2 利用指针来传递对象 9.3.3 利用cost指针来传递对象 9.3.4 利用引用来传递对象 9.3.5 到底是使用引用还是指针 9.3.6 引用和指针可以一块用 ...
10.3.2 通过指针引用数组元素 143 10.3.3 数组名作函数参数 146 10.3.4 指向多维数组的指针和指针变量 148 10.4 字符串的指针指向字符串的针指变量 150 10.4.1 字符串的表示形式 152 10.4.2 使用字符串指针变量与...
分别用来设置和获取学生各个属性值的set()和get()成员函数(例如:设置数学成绩的成员函数setMath().返回数学成绩的成员函数 getMath());计算三门课程总成绩的函数sum();显示学生数据信息的函数print();(注意:...
10.3.2 通过指针引用数组元素 143 10.3.3 数组名作函数参数 146 10.3.4 指向多维数组的指针和指针变量 148 10.4 字符串的指针指向字符串的针指变量 150 10.4.1 字符串的表示形式 152 10.4.2 使用字符串指针变量与...
8.6 返回指针值的函数 8.7 指针数组和多重指针 8.7.1 什么是指针数组 8.7.2 指向指针数据的指针 8.7.3 指针数组作main函数的形参 8.8 动态内存分配与指向它的指针变量 8.8.1 什么是内存的动态分配 8.8.2 怎样建立...
第10章 虚函数和多态性 10.1 简介 10.2 类型域和switch语句 10.3 虚函数 10.4 抽象基类和具体类 10.5 多态性 10.6 实例研究:利用多态性的工资单系统 10.7 新类和动态关联 10.8 虚析构函数 10.9 实例研究:...