当前位置: 首页 > news >正文

网络科技有限公司网站广东省消防建设工程申报网站

网络科技有限公司网站,广东省消防建设工程申报网站,福建企业seo推广,大连零基础网站建设培训中心模块化编程--函数1. 函数基本知识2. 函数的参数2.1 按值传递机制#xff08;小议按引用传递#xff09;2.2 使用数组做函数参数#xff08;用户头文件#xff0c;const的防改#xff09;2.3 使用二维数组作为函数的参数2.4 使用函数指针作为函数的参数2.4.1 函数指针的基本… 模块化编程--函数1. 函数基本知识2. 函数的参数2.1 按值传递机制小议按引用传递2.2 使用数组做函数参数用户头文件const的防改2.3 使用二维数组作为函数的参数2.4 使用函数指针作为函数的参数2.4.1 函数指针的基本内容2.4.2 函数指针数组的声明2.4.3 auto2.4.4 使用typedef 定义函数指针类型《老九学堂C课程》《C primer》学习笔记。《老九学堂C课程》详情请到B站搜索《老九零基础学编程C入门》-------------简单的事情重复做重复的事情用心做用心的事情坚持做(老九君)---------------1. 函数基本知识 函数分类 内置函数STLBoost C自定义函数focus on C Standard Library(C 标准函数输入/输出数值诊断通用工具国际化语言支持STL(迭代器算法 容器)) Boost C可移植开源的代码库 函数三要素返回值类型函数名参数列表 return_type functionName(parametersList){//函数体 }自定义函数的完整写法函数原型函数调用函数定义 int sum(int, int); // 函数原型描述函数到编译器的接口提前告诉编译器一声。不需要写参数名以分号结尾 int main(){// 函数调用int result sum(5,3); } // 函数定义 int sum(int num1, int num2){// 函数实现的代码return num1 num2 }注意 1.函数原型和函数定义的头部类似函数原型以分号结尾 2.函数原型中的参数名称可以省略只写参数类型 3. C返回值类型不能是数组但是可以是其他任何类型可以将数组做为结构或者对象的组成部分返回 dmeo 计算长方体和圆柱体的体积 //1.定义两个函数分别用来计算两种形状的体积 //2.在mian 函数中用户可以选择计算某个形状的体积 void calcCuboid(); // 计算长方体的体积 void calcCylinder(); // 计算圆柱体的体积int main(){int choice -1;while(choice){cout 1. 计算长方体体积 endl;cout 2. 计算圆柱体的体积 endl;cout 0. 退出 endl;cin choice;switch(choice){case 1:calcCuboid();break;case 2:calcCylinder();break;}}cout 感谢使用本软件觉得好用点个赞呗 endl;return 0; }void calcCuboid(){// 输出长宽高double len, width, height;cout 请输入长宽高 ;cin len width height;// 计算体积double v len * width * height;cout 长方体的体积为 v endl; } void calcCylinder(){double radius, height;cout 请输入半径和高;cin radius height;// 计算体积, pow 的头文件 cmathdouble pi 4 * atan(1.0); // arctan(1.0) 为45度角的弧度表示pi为其4倍数// double v 3.14 * pow(radius, 2) * height;double v pi * pow(radius, 2) * height;cout 圆柱体的体积为 v endl; } 2. 函数的参数 2.1 按值传递机制小议按引用传递 按值传递给函数传递变量时变量值不会直接传递给函数而是先制作变量值的副本原始变量被存在栈上将这个副本传递给函数。 void change(int); int main(){int num 9;change(num);cout num num endl;return 0; } void change(int num){num; }num 9如果传递的是引用那么原变量的值将会改变引用,传递的是地址改变的是地址中的值 void change(int); int main(){int num 9;change(num);cout num num endl;return 0; } void change(int num){// 传递了引用地址num; }num 102.2 使用数组做函数参数用户头文件const的防改 1.数组作为函数参数时只传递数组的首地址并不传递整个数组空间 2.当数组名为实参时数组首地址指针被传递到函数中 使用函数升级《小公主养成记》-- 函数放在自己写的头文件中(.h结尾)在.cpp文件中include 头文件princess.h编写 // 使用函数升级《小公主养成记》中基本属性的输入和排序功能 // 基本属性 体力 智力 魅力 道德 气质 #include iostreamusing namespace std; // 函数定义 // 给一个数组 void input(int [], int); void show(int [], int); //自行完成删除和修改数组元素// 函数实现 void input(int values[], int len){//int values[] 这么定义形参传递数组的时候传递的是数组的指针//传数组时只有指针建议再传一个数组长度if(len 5){cout 数组长度只能是5以内越界了 endl;return; // 退出返回值为void的函数}string valueNames[] {体力, 智力, 魅力, 道德, 气质};for(int i0; i len; i){cout valueNames[i] : ;cin values[i];} }void show(int values[], int len){string valueNames[] {体力, 智力, 魅力, 道德, 气质};for(int i 0; i len; i){cout valueNames[i] : values[i] endl;} }.cpp中导入自己写的头文件 #include iostream #include princess.h // 自己写的头文件使用双引号就可以了 using namespace std; int main(){int values[5];input(values, sizeof(values)/sizeof(int));show(values,5);return 0; }传递数组参数时不希望改动数组中的元素在定义可以使用const 关键字 void show(const int [], int); int main(){int valueArray[] {90, 56, 67, 89, 100};return 0; } void show(const int valueArray[], int len){for(int i 0; i len; i){// cout valueArray[i] endl; ❌编译不给过告诉你只读cout valueArray[i] endl; } } 2.3 使用二维数组作为函数的参数 void show_2d(double (*)[5],int); int main(){double valueArray[3][5] {{45.5, 46.6, 47.7},{12.2, 13.3, 14.4},{15.5, 16.6, 17.7}};show_2d(valueArray, 3);return 0; } //void show_2d(double valueArray[][5], int len) 两种头部书写方式都可以 void show_2d(double (*valueArray)[5], int len){for(int i 0; i len; i){for(int j 0; j 5; j){cout *(*(valueArray i) j) ,;}cout endl;} }2.4 使用函数指针作为函数的参数 2.4.1 函数指针的基本内容 函数的地址是其机器语言代码在内存中存放的首地址 好处将函数当作参数来传递可以在不同的时间使用不同的函数 注意点现有函数先声明函数指针再用函数指针指向需要的函数 使用场景在很多函数调用的情况下使用函数指针简化函数调用。 使用函数指针来指向一个函数的地址函数指针的声明 //函数原型 double sum(double, double); //函数指针声明, 一个指向函数的指针 ✅ double (*ptrSum)(double, double); //返回值是double * 的函数, 达不到声明函数指针的效果 double *ptrSum(double, double);demo1:用户幂函数的实现与对应的指针 #include funptr.h int main(){// 声明函数指针int (*ptrmypower)(int, int);// 让指针指向函数ptrmypower my_power;// 用函数指针调用函数cout ptrmypower(2, 3) endl;cout (*ptrmypower)(2,3) endl;cout my_power(2, 3) endl;return 0; }funptr.h 文件内容 int power(int, int);int my_power(int num1, int num2){int result 1;for(int i 0; i num2; i){result * num1;}return result; }demo2使用函数指针实现加减乘除运算 #include mycalc.h int main(){// 定义函数指针double (*ptrCalc)(double, double);double num1, num2;char op;cout 请输入两个运算数字 endl;cin num1 num2;cout 请输入运算符 endl;cin op;// seitch 语句只用来给函数指针赋值switch(op){case :// 调用加法函数ptrCalc addtion;break;case -:// 调用减法函数ptrCalc subtraction;break;case *:// 调用乘法函数ptrCalc multiplication;break;case \\:// 调用除法函数ptrCalc division;break;}print_result(ptrCalc, num1, num2);return 0; }mycalc.h 中的内容 // 自定义计算器使用函数指针 #include iostream using namespace std; /** 加法 */ double addtion(double, double); /** 减法 */ double subtraction(double, double); /** 乘法 */ double multiplication(double, double); /** 除法 */ double division(double, double); /** 打印结果*/ void print_result(double (*)(double, double), double, double); // 把后两个duuble 传递给前面的函数指针ptrCalcvoid print_result(double (*ptrCalc)(double, double), double num1, double num2){// 调用函数打印结果double result ptrCalc(num1, num2);cout 运算结果 result endl; }double addtion(double num1, double num2){return num1 num2; } double subtraction(double num1, double num2){return num1 - num2; }double multiplication(double num1, double num2){return num1 * num2; }double division(double num1, double num2){if(num2 0){cout 除数不能为0 endl;return 0;}else{return num1 / num2;} }2.4.2 函数指针数组的声明 –自行实践 double (*ptrCalc[])(double, double) 2.4.3 auto 函数指针的声明比较麻烦C 11 中可以使用auto ptrFunc addition; 实现函数类型的自动诊断自动诊断需要确保变量的类型和赋值的类型一致就可以不需要函数指针声明。 // double (*ptrCalc)(double, double);auto ptrCalc addtion; // 必须初始化遇到具体计算需求时在赋予新的函数地址如后续需要求减法2.4.4 使用typedef 定义函数指针类型 typedef double (*ptrCalc)(double, double); // 定一个了一个函数指针类型ptrCalc ptrCalc1;
http://wiki.neutronadmin.com/news/142774/

相关文章:

  • 青岛网站设计微动力网站后台发文章图片链接怎么做
  • 浙江网站建设优化wordpress适合电影网站的模板下载
  • 公司建网站南京seo网站建设费用
  • 资讯门户网站 dede百度商桥网站代码去哪里添加
  • 对网站建设有什么样好的建设意见德州网站建设哪家专业
  • 建设部四库一平台查询网站12366纳税服务平台
  • 响应式网站建设定制网站建设需要学编程么
  • 找外包做网站不给代码金融网站模板素材
  • 永久网站建设apache 写wordpress
  • 网站作为医院形象建设开发网站服务
  • 牛商网网站建设多少钱邢台网
  • 网站建设友链交换html代码特效银河系
  • dw做电影网站青岛seo经理
  • 网站建设大约多少费用个人优秀网页设计
  • 网站的建设与管理自考利用店铺网站做灰色优化
  • 温州建设工程网站济南城市建设集团网站
  • 可视化手机网站开发工具教学设计模板
  • 重庆网站托管wordpress名站
  • 丹阳市住房和城乡建设局网站wordpress 调用文章
  • 张氏万家网站建设青岛网站建设哪个平台好
  • 怎么制作网站教程南昌网站开发公司哪家公司好
  • 手机百度关键词排名 seo网站优化软件前端学校网站开发视频教程
  • 网站建设太金手指六六二七wordpress 置顶标签
  • 免费网站建设免费咨询代做毕业设计网站家具设计
  • 维度网络网站建设二级域名怎么注册
  • 邯郸市建设局查中级职称网站嵌入式培训推荐
  • 做商城网站的流程商城网站设计企业
  • 印度做网站专业类搜题软件
  • 郑州网站建设哪家公司好网站 防止采集
  • 做水果网站行pro wordpress theme development