今天学习《从新手到高手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语言利用指针求数组的最大值与最小值,下载资源,数组可扩展。
总结来说,C#调用C++DLL并处理指针参数涉及到P/Invoke、函数原型声明、指针类型映射、内存管理和异常处理等多个环节。理解这些细节是成功进行跨语言互操作的关键。在实际开发中,务必确保所有操作都遵循安全规范,以...
这在处理动态内存分配、函数返回指针的指针或者在复杂的嵌套数据结构中非常有用。 总之,理解并熟练运用C语言中的指针是成为优秀C程序员的关键。通过指针,我们可以实现高效的数据操作,编写出更灵活和强大的程序。...
在C/C++编程中,指针函数和函数指针是两个看似相似但实质不同的概念,尤其是在Android NDK(Native Development Kit)开发中显得尤为重要。...通过合理利用指针函数和函数指针,可以写出更加灵活和高效的代码。
本代码示例主要展示了如何使用函数指针来实现根据用户输入的选择调用不同的函数,计算三个整数的最大值、最小值和求和。 首先,我们定义了三个函数:`max`、`min`和`sum`。这三个函数分别接收三个整数参数,并返回...
本文主要探讨了如何通过对象、引用和指针调用虚函数,并深入解析了虚函数的实现原理和相关知识点。 首先,虚函数的主要作用是允许基类指针或引用调用派生类中的相应函数,即使在编译时不知道具体指向的是哪个派生类...
本章节主要介绍了指针的概念、指针变量的定义和使用、指针的引用、通过指针引用数组和字符串、返回指针值的函数、指针数组和多重指针、动态内存分配与指向它的指针变量等内容。 8.1 指针是什么 指针是内存单元的...
在实际项目中,根据需求选择合适的函数调用方式、利用函数指针实现多态性、通过嵌套调用组织复杂的逻辑,并借助递归来解决特定问题,都是提升代码质量的关键。同时,理解这些概念也有助于进一步学习其他编程语言和...
4. 只有通过基类指针或引用调用虚函数才能体现运行时多态性,因为此时编译器在编译阶段无法确定对象的实际类型。 5. 虚函数与重载函数的主要区别在于,重载函数必须有不同的参数列表,而虚函数可以有相同的参数列表...
8.1 指针是什么 8.2 指针变量 8.3 通过指针引用数组 8.4 通过指针引用字符串 8.5 指向函数的指针 8.6 返回指针值的函数 8.7 指针数组和多重指针 8.8 动态内存分配与指向它的指针变量 8.9 有关指针的小结
然而,这也要求开发者有扎实的指针和内存管理知识,以避免潜在的错误和陷阱,比如空指针引用、未初始化的指针、内存泄漏等问题。 总的来说,函数指针是C/C++中的一项强大特性,它允许函数的动态绑定和代码的模块化...
第8章还介绍了通过指针引用数组,通过指针引用字符串,以及指向函数的指针。对于数组,指针可以看作是数组首元素的地址,通过指针可以遍历整个数组。在字符串的情况下,由于字符串本质上是字符数组,指针可以用来...
在示例`max_min`函数中,`arr`数组的首地址被传递给`pt1`和`pt2`指针,用于寻找数组中的最大值和最小值。这里,`max_min`通过遍历数组并更新`*pt1`和`*pt2`,实现了对数组元素的无损比较。 再者,我们可以传递指向...
函数原型`void swap(int *a, int *b)`可以有多种实现方式,例如使用指针交换值,或者直接通过指针解引用交换值。 ### 函数指针的应用 函数指针允许我们将函数作为参数传递给其他函数,或者作为返回值返回。例如,...
总结一下,"指针与函数"这一主题涵盖了编程中的基本概念,包括指针的声明、初始化、解引用,以及函数指针的声明、赋值和调用。这些知识点在编写高效、动态的C/C++程序时是不可或缺的。通过深入学习和实践,开发者...
然而,VB不直接提供函数指针,但我们可以利用“委托”(Delegate)来模拟这个功能。委托在VB中类似于事件处理程序,它封装了对特定方法的引用,允许我们在运行时动态调用这些方法。 在VB中创建一个委托,我们需要...
成员函数指针用于指向类的成员函数,可以在没有类实例的情况下持有对成员函数的引用。上面的代码片段展示了如何使用成员函数指针: ```cpp class b { public: void print() { cout ; a = 90; cout ; } ...
在C语言中,函数指针是一个非常重要的概念,它允许我们像处理普通变量一样处理函数,将函数作为参数传递,或者存储在数据结构中...通过学习和实践,你可以利用函数指针来解决复杂的问题,实现高效且可扩展的程序设计。
同时,函数也可以返回一个指针,这使得函数可以返回多个值或创建动态对象。 8. **多级指针**:多级指针是指指向指针的指针,它可以用来间接访问嵌套的数据结构或递归函数中的数据。 9. **函数指针**:函数指针是一...
- 解引用操作:`*ptr`用于获取或修改指针所指向的值。 2. **函数**: - 函数是可重用的代码块,可以接受参数并返回结果。 - 定义函数:`void displayTime(int *hour, int *minute, int *second) {...}`,这个...