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

上海市建设工程检测行业协会网站太原心诺做网站

上海市建设工程检测行业协会网站,太原心诺做网站,国外网站建设官网,企业网站建设方案撰写文章目录 #x1f96e;一、缺省参数#x1f355;1、基本概念#x1f355;2、缺省参数的分类#x1f6a9;全缺省参数#x1f6a9;半缺省参数#x1f6a9;缺省参数实用案例 #x1f96e;二、函数重载#x1f355;1、函数重载概念1️⃣参数类型不同2️⃣参数个数不同3️⃣… 文章目录 一、缺省参数1、基本概念2、缺省参数的分类全缺省参数半缺省参数缺省参数实用案例 二、函数重载1、函数重载概念1️⃣参数类型不同2️⃣参数个数不同3️⃣参数类型顺序不同 三、C支持函数重载的底层原理--函数名修饰 一、缺省参数 1、基本概念 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。 在调用该函数时如果没有指定实参则采用该形参的缺省值否则使用指定的实参。 举个栗子 //缺省参数 void Func(int a 1) {cout a endl; }int main() {Func(10);Func();return 0; }注意缺省值(函数形参的默认值)不能同时在函数声明和函数定义中给出(缺省参数不能在函数声明和定义中同时出现); 注意缺省值必须是常量或者全局变量。 2、缺省参数的分类 全缺省参数 全缺省参数每个形参都指定缺省值 举个栗子 //全缺省参数 void Func(int a 10, int b 20, int c 30) {cout a a endl;cout b b endl;cout c c endl endl; }int main() {Func();//显示传参从左往右显示传参Func(1);Func(1,2);Func(1, 2, 3);return 0; }半缺省参数 半缺省参数为部分形参指定缺省值 举个栗子 //半缺省参数 void Func(int a, int b 10, int c 20) {cout a a endl;cout b b endl;cout c c endl endl; }int main() {Func(1);Func(1,2);Func(1, 2, 3);return 0; }注意半缺省参数必须从右往左依次来给出不能间隔着给 ❌下面这种情形是不允许的 void Func(int a 10, int b, int c 20) {cout a a endl;cout b b endl;cout c c endl endl; }缺省参数实用案例 假如要实现一个栈的结构我们不知道要入栈插入多少个数据所以不知道初始化开辟多少内存空间合适给多了浪费给少了不够用这时我们就可以使用缺省参数 请看演示代码 Stack.h #includestdlib.h namespace N1 {typedef struct Stack{int* a;int top; int capacity;}ST;//不允许声明和定义同时给缺省参数//声明给定义不给void StackInit(ST* ps, int N 4){ps-a (int*)malloc(sizeof(int) * N);ps-top 0;ps-capacity 0;}Test.cpp #include Stack.hint main() {N1::ST st1;StackInit(st1, 10);//知道10个for (size_t i 0; i 10; i){StackPush(st1, i);}N1::ST st2;StackInit(st2, 100);//知道100个for (size_t i 0; i 100; i){StackPush(st2, i);}//不知道可能会插入多少个N1::ST st3;StackInit(st3);return 0; }二、函数重载 自然语言中一个词可以有多重含义人们可以通过上下文来判断该词真实的含义即该词被重载了。 比如以前有一个笑话国有两个体育项目大家根本不用看也不用担心。一个是乒乓球一个 是男足。前者是“谁也赢不了”后者是“谁也赢不了” 1、函数重载概念 函数重载是函数的一种特殊情况C允许在同一作用域中声明几个功能类似的同名函数这些同名函数的形参列表(参数个数 或 参数类型 或 参数类型顺序)不同常用来处理实现功能类似数据类型不同的问题。 重载函数之间是通过函数的 形参个数 或 形参类型 或 形参类型顺序 来区分的(只有这三个区分标准)重载函数之间的区分在于形参的差异。 1️⃣参数类型不同 // 1、参数类型不同 int Add(int left, int right) {cout int Add(int left, int right) endl;return left right; } double Add(double left, double right) {cout double Add(double left, double right) endl;return left right;2️⃣参数个数不同 // 2、参数个数不同 void func1() {cout func1() endl; } void func1(int a) {cout func1(int a) endl; }3️⃣参数类型顺序不同 // 3、参数类型顺序不同 void func2(int a, char b) {cout func2(int a,char b) endl; } void func2(char b, int a) {cout func2(char b, int a) endl; }int main() {cout Add(10, 20) endl;cout Add(10.1, 20.2) endl;cout endl;func1();func1(10);cout endl;func2(10, a);func2(a, 10);return 0; }注意以下两种情况不构成函数重载 namespace M1 {void func(int x){}; }namespace M2 {void func(int x){}; }不在同一作用域中函数重载必须在同一作用域中☝️ namespace M1 {void func(int x){}; }namespace M1 {void func(int x){}; }自动合并了☝️ namespace M1 {void func(int x){}; }namespace M1 {void func(double x){}; }构成函数重载✅ 函数重载和缺省参数没有关系 void func(int a) {cout void func(int a) endl; }void func(int a, int b 1) {cout void func(int a, int b) endl; }int main() {func(1, 2);//调用存在歧义,不知道调用哪个//func(1);return 0; }三、C支持函数重载的底层原理–函数名修饰 形成可执行文件要四个阶段预处➡️编译➡️汇编➡️链接 void func(int i, double d) {cout void func(int i, double d) endl; }void func(double d, int i) {cout void func(double d, int i) endl; }int main() {func(1, 1.1); // call func()func(1.1, 1); // call func()return 0; }对这段代码编译生成反汇编 call指令是通过函数的符号表来定位函数的地址的 但是在C语言中函数符号表中函数的命名规则就是原模原样地照搬源文件中的函数标识名。 C符号表中的函数名修饰 在符号表中各个函数的命名都遵循一定的函数名修饰规则 在g编译环境(支持C的编译器)中符号表中的函数名经过修饰后变成【_Z函数名长度函数名类型首字母】(这点和C语言的符号表中函数的命名规则完全不同) C(g编译环境)这种名字修饰规则使得标识名相同形参不同的函数在符号表中得到了区分因此编译器在编译和链接的过程中就能根据函数调用语句具体的实参类型明确地找到相应重载函数的函数体的地址并访问函数体中的指令实现了重载函数的调用。 C语言中不存在这种名词修饰规则因此在符号表中标识名相同的函数的符号表命名也是相同的所以编译器在编译和链接的过程中无法对同标识名函数进行区分所以无法实现函数重载。 这期内容有一点点难理解希望烙铁们能理解消化有所收获哦 总结 以上就是 【C】缺省参数函数重载 的全部内容啦 本文章所在【C初阶】专栏感兴趣的烙铁可以订阅本专栏哦 前途很远也很暗但是不要怕不怕的人面前才有路。 小的会继续学习继续努力带来更好的作品 创作写文不易还多请各位大佬uu们多多支持哦
http://www.huolong8.cn/news/269546/

相关文章:

  • 北京平台网站建设价位技术外包
  • 查询类网站怎么做17一起做网店网站潮汕
  • 如何生成一个网站网站开发要注意的漏洞
  • 做景观园林的网站是wordpress 4.5.2 中文
  • 无锡网站推广优化公司百度推广开户怎么开
  • 青年文明号网站建设做网站代码难么
  • 长网址转短网址网站东营市城乡建设局网站
  • 网站建设推广方案策划书产品备案号查询官网
  • 公司年会宣传软文seo高级优化技巧
  • 深圳网站建设推广公司小程序代理须知
  • 清溪仿做网站如何给网站配置域名
  • 网站怎么做站内美化长沙 做网站
  • 如何让新网站快速收录平面设计软件有哪几种
  • 盐城网站建设渠道合作公司网站做好了还需
  • 软件或网站是怎么做的宣传的网站开发需要多少钱
  • 贝斯特专业网站wordpress实现伪静态
  • 教学设计的网站wordpress开启报错
  • ai里做的图片方网站上不清楚文章wordpress
  • 哪个协会要做网站建设啊做网站的图片从哪里找
  • wdcp网站打不开公司怎么注册网站免费
  • 快速搭建网站前端插件境外网站
  • 怎么做网站收录有没有淄博张店做兼职工作的网站
  • 绿色配色的企业网站车票在线制作网站
  • 文章分享网站模版做网站在浏览器预览怎么出现了状况
  • 做网站和优化的公司北京网站设计制作关键词
  • 私人衣橱网站建设网站外链建设到底该怎么做
  • 网站app怎么制作教程wordpress 登陆不了
  • 顺通建设集团有限公司 网站建网站资料
  • 关于幼儿建设网站ppt网站开发怎么谈
  • 网站的域名是什么意思wordpress特效代码