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

崇左市网站建设_网站建设公司_前后端分离_seo优化

石岩小学网站建设,网站删除留言板功能删除,公司网站建设的请示,哈密网站制作公司C中返回类型与return语句 有、无返回值的函数及其return语句 无返回值#xff08;函数声明中#xff0c;返回值类型为void#xff09;的函数#xff0c;如果其中没有任何return语句也是正确的#xff0c;编译器会自动在函数结束处补上隐式的return;语句。如果这种void函数…C中返回类型与return语句 有、无返回值的函数及其return语句 无返回值函数声明中返回值类型为void的函数如果其中没有任何return语句也是正确的编译器会自动在函数结束处补上隐式的return;语句。如果这种void函数内部出现显式的return;其作用是表示该函数在此处将控制权交还给主调函数。 除void函数外其他函数必须显式地返回与声明中返回值类型相同或可以转换为该类型的值。 函数把值返回给调用处的细节原理 函数把值返回给外部调用处的实现方法细节与从外部实参传递值给函数形参的方法细节完全一样。本质上是用已有值传参中的实参返回中的返回值初始化一个临时量传参中的形参返回中的函数调用点。因此对象的初始化规则在函数返回过程中仍然适用。 1 函数返回局部变量给外部 本质上是将函数内局部变量的值拷贝给函数调用点用来初始化外部调用点的临时对象。 2 函数返回引用给外部 引用是对象的别名因此此时函数对外返回的是对象本身而不是拷贝一个值给外部副本。因此要特别注意千万不能返回函数内部局部对象的引用和指针。因为函数在结束调用后局部变量就会被销毁这时被函数给返回到外部的局部变量对象引用将不再绑定有效的内存区域。 综上可知函数要想对外返回引用或指针只能返回那种在函数调用之前已经存在了的对象的引用或指向该对象的指针 范例 //函数对外返回引用的正确用法 const string shorterStr(const string s1, const string s2) { //挑出两个string对象中较短的那个返回其引用return s1.size() s2.size() ? s1 : s2; //因为s1和s2绑定的对象都是在调用函数前就已经存在的了因此函数对外返回这种对象的引用不会产生问题 }//以下写法严重错误这个函数试图返回局部对象的引用 const string manip() {string ret;if (!ret.empty()) {return ret; //❌试图返回局部对象的引用} else {return Empty; //❌Empty也是一个局部临时量并且以引用的方式传出在函数结束调用后该临时量会被销毁使得外部调用点的引用不再绑定具体对象} }//以下写法严重错误不能返回一个指向局部对象的指针 int *funcIp(int var) {int i 10;int *ip (i var); //i var对象是一个临时量结束调用后销毁对外返回的指针无法指向确定的内存return ip; }返回类类型的函数可以连续调用 返回类类型类的对象或其引用或指向类的对象的指针的函数可以在其调用处继续使用调用运算符去调用该类的其他函数如下例 const string shorterStr(const string s1, const string s2) { //此函数返回的是一个string对象的引用return s1.size() s2.size() ? s1 : s2; } string s1 aaaa; string s2 bbb; auto sz shorterStr(s1, s2).size(); //shoterStr(s1, s2)返回的是一个string对象s2该对象有size()成员函数因此可以在shoterStr()的返回处再继续调用size()这个调用结束后返回的是一个size_t类型值对象由auto类型对象sz接收引用返回左值 调用一个返回引用的函数在调用处得到左值左值可以放在赋值号左边用来被赋值 调用返回其他类型的函数在调用处得到右值右值可以放在赋值号右边用来赋值 可以像使用其他左值那样来使用返回左值返回引用的函数调用特别是能为返回类型是非常量引用的函数结果进行赋值。如下例 但如果函数的返回值类型是常量引用就不能给调用结果进行赋值了这是常量特性所决定的 char get_val(string str, string::size_type ix) { //该函数的返回值类型是非常量引用其返回结果可以在调用处被当作左值return str[ix]; //假定索引值ix一定合法 }const string shorterStr(const string s1, const string s2) { //此函数返回的是常量引用return s1.size() s2.size() ? s1 : s2; }int main() {string s(a value);cout s endl; //输出a valueget_val(s, 0) A; //get_val的返回结果在此处被当作左值因为它的返回值类型是非常量引用可以完成这里的赋值操作将s[0]的值改为Acout s endl; //输出A valueshoterStr(hi, bye) X; //❌返回的是常量引用也就是常量对象不能被修改因此也不能这样作为左值使用return 0; }该文章会更新欢迎大家批评指正。 推荐一个零声学院的C服务器开发课程个人觉得老师讲得不错 分享给大家LinuxNginxZeroMQMySQLRedis fastdfsMongoDBZK流媒体CDNP2PK8SDocker TCP/IP协程DPDK等技术内容 点击立即学习C/C后台高级服务器课程
http://www.ihoyoo.com/news/132515.html

相关文章:

  • 简约网站深圳福田华丰大厦网站建设
  • 网站制作属于什么行业番禺人才招聘网
  • 网站网页制作及优化怎么做卖花的网站
  • 地税局内网网站建设做网站项目实例
  • 电子商务网站建设课件婚介网站建设的策划
  • 产品设计公司网站今天重大新闻100字
  • 湖南智能网站建设公司十堰网站推广
  • 浙江大学陈越做的刷题网站网站开发工具 哪个好
  • 中小企业网站seo做运营常用的网站
  • 自贡做响应式网站开发公司网站主机测速
  • 网站开发网站源码网站建设 自学
  • 爱做奈官方网站最新消息新闻头条
  • 30多了学网站建设晚吗wordpress略缩图alt
  • 采集网站后台数据云县网站建设
  • 如何做网站超链接百度推广怎么注册账号
  • 怎么优化网站关键词排名wordpress主题汉化版免费下载
  • 苏州建设营销网站aso优化贴吧
  • 网站维护目标短视频营销国内外研究现状
  • 帮企业建网站步骤免费的短视频app大全安卓
  • 营销型网站建设市场深圳团购网站设计
  • 网站联系方式设计网站快速排名是怎么做的
  • 青岛企业网站建站模板设计网页时有哪些配色方法
  • 怎么建网站 手机版建造师在建设部网站何时更新
  • 盘锦做网站哪家好温州做网站哪里好
  • 徐州网站优化推广网站首页 动画案例
  • 怎么创建网站?网站建设主要工作流程
  • 义乌建设局网站国家企业网官网查询
  • 搬瓦工如何搭建做网站辅导班培训机构
  • wordpress建站创业网站建设app开发合同
  • 亦庄公司做网站宁波网站优化建站公司