那些知名网站是外包做的,参考效果图网站,东莞需要做推广的公司,怎么做网站拍卖的那种C中带默认值的函数参数
如果一直将 Pi 声明为常量#xff0c;没有给用户提供修改它的机会。然而#xff0c;用户可能希望其精度更高或更低。如何编写一个函数#xff0c;在用户没有提供的情况下#xff0c;将 Pi 设置为默认值呢#xff1f; 为解决这种问题#xff0c;一…C中带默认值的函数参数
如果一直将 Pi 声明为常量没有给用户提供修改它的机会。然而用户可能希望其精度更高或更低。如何编写一个函数在用户没有提供的情况下将 Pi 设置为默认值呢 为解决这种问题一种方式是给函数 Area() 新增一个表示 Pi 的参数并将其默认值设置为您选择的值。对函数 Area() 做这样的修改后结果将如下
double Area(double radius, double pi 3.14);请注意给第二个参数 pi 指定了默认值 3.14。对调用者来说这个参数是可选的因此仍可使用下面的语法来调用函数 Area()就像第二个参数不存在一样
Area(radius);在这里第二个参数将使用默认值 3.14。然而必要时可使用两个实参来调用这个函数
Area(radius, 3.14159); // more precise pi以下示例程序演示了如何编写参数包含默认值的函数这种默认值可被用户提供的值覆盖
#include iostream
using namespace std;// Function Declarations (Prototypes)
double Area(double radius, double pi 3.14);int main()
{cout Enter radius: ;double radius 0;cin radius;cout pi is 3.14, do you wish to change this (y / n)? ; char changePi n;cin changePi;double circleArea 0;if (changePi y){cout Enter new pi: ;double newPi 3.14;cin newPi;circleArea Area (radius, newPi);}elsecircleArea Area(radius); // Ignore 2nd param, use default value// Call function Area cout Area is: circleArea endl;return 0;
}// Function definitions (implementations)
double Area(double radius, double pi)
{return pi * radius * radius;
}输出
Enter radius: 1
Pi is 3.14, do you wish to change this (y / n)? n
Area is: 3.14再次运行的输出
Enter radius: 1
Pi is 3.14, do you wish to change this (y / n)? y
Enter new Pi: 3.1416
Area is: 3.1416分析
从上述输出可知两次运行时用户输入的半径相同都是 1。然而第二次运行时用户修改了 Pi 的精度因此计算得到的面积稍有不同。两次运行时调用的是同一个函数如第 22 和 25 行所示。第 25 行调用 Area()时没有指定第二个参数 pi 因此将使用默认值 3.14 这是在第 4 行的声明中指定的。
注意
可以给多个参数指定默认值但这些参数必须位于参数列表的末尾。该文章会更新欢迎大家批评指正。
推荐一个零声学院的C服务器开发课程个人觉得老师讲得不错 分享给大家LinuxNginxZeroMQMySQLRedis fastdfsMongoDBZK流媒体CDNP2PK8SDocker TCP/IP协程DPDK等技术内容 点击立即学习C/C后台高级服务器课程