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

宁安网站建设华为荣耀官网手机旗舰店

宁安网站建设,华为荣耀官网手机旗舰店,wordpress关于博主页面,网站备案 种类文章目录 一、函数重载1. 重载规则2.重载列子3.函数名修饰规则 二、引用1.本质2.特性1. 引用必须在定义时初始化2 . 一个变量可以有多个引用3 . 引用一旦引用一个实体#xff0c;就不能引用其他实体 3.引用例子4.引用的权限5.效率比较6.指针跟引用的区别 一、函数重载 函数重… 文章目录 一、函数重载1. 重载规则2.重载列子3.函数名修饰规则 二、引用1.本质2.特性1. 引用必须在定义时初始化2 . 一个变量可以有多个引用3 . 引用一旦引用一个实体就不能引用其他实体 3.引用例子4.引用的权限5.效率比较6.指针跟引用的区别 一、函数重载 函数重载是函数的一种特殊情况C允许在同一作用域中声明几个功能类似的同名函数这些同名函数的形参列表(参数个数 或 类型 或 类型顺序)不同常用来处理实现功能类似数据类型不同的问题。 对于c语言是不允许重名函数的存在的当函数名字相同时就会报错。但是对于 c 可以。 因为C语言是根据函数名来去找函数的可以简单的理解为C语言函数名就是地址 1. 重载规则 当函数重载条件满足如下三条时则可以构成函数重载 1.参数类型不同 2.参数个数不同 3.参数类型顺序不同 4、仅仅返回类型不同不足以称为函数重载的重载 5、需要在同一作用域下 2.重载列子 int add(int a, int b) {return a b; }void add(int a, float b) {cout add(int a,float b) endl; }void add(float a, int b) {cout add(float a,int b) endl; }float add(float a, float b) {return a b; } 3.函数名修饰规则 对于函数重载后的函数执行会不会变慢不会因为不是在运行时匹配而是在编译时。 编译时如何进行识别 对于C语言来说就是依靠函数名去找函数的如果函数名相同则会冲突因为不知道找哪个 对于C来说是通过函数名参数类型参数个数参数顺序 二、引用 引用的基本概念 引用是一个别名引用是一个已存在变量的别名通过引用可以访问原始变量的值。引用必须初始化引用在创建时必须进行初始化并且一旦初始化后它将一直引用同一个变量。 使用引用的好处 传递函数参数通过引用传递参数可以避免产生额外的复制开销并且可以直接修改原始变量的值。返回函数结果函数可以返回引用类型以便返回引用指向的变量而不是复制一个新的副本。在容器中使用引用在使用STL容器时使用引用可以避免元素的拷贝提高效率。 引用与指针的比较 引用与指针类似但有一些关键区别。引用是一个别名而指针是一个变量可以指向其他变量。引用不能为空引用在创建时必须进行初始化并且不能重新赋值为空。引用使用更方便相比指针引用语法更简洁明了更容易理解和使用。 常量引用 常量引用是指对常量进行引用即引用的变量不能被修改。常量引用可以绑定到临时对象以便在函数调用中传递临时对象的值。 引用作为返回类型 函数可以返回引用类型在函数外部直接修改原始变量的值。注意返回局部变量的引用可能导致悬空引用应避免这种情况。 1.本质 我们发现a和b不仅值相等连地址也是相同的。而这就说明b 就是 a 在语法层面上这里 b 并不是开辟的新空间而是对原来的 a 取了一个新名称叫做 b 相当于一块空间有多个名字一样都是指向这块空间的 而如果这时候对 a 或 b 任意一个修改那么 a 和 b 都会发生修改。 2.特性 1. 引用必须在定义时初始化 2 . 一个变量可以有多个引用 3 . 引用一旦引用一个实体就不能引用其他实体 int main() {int a 10;int b a;int c 20;b c;return 0; } 那么这样又是什么意思呢 b引用了a然后bc是将c的值赋值给b 这就说明引用一旦引用一个实体就不能引用其他实体引用是不会发生改变的 3.引用例子 引用作为函数返回值 在Test函数当中定义了一个n然后返回n的别名 在main函数当中用ret接受n的值 再打印ret结果一直都是1 虽然Test那块函数栈帧已经被销毁但是我们使用int ret接受的n的值并不是n 所以ret就是1 #includeiostreamusing namespace std; int Test() {int n 1;return n; } int main() {int ret Test();cout ret endl;cout ret endl;cout ret endl;cout ret endl;return 0; }然后我们将ret换为int 来接受 这时候ret就是n的别名 n出了函数作用域就销毁了函数栈帧销毁了但是里面的东西还没有被覆盖传引用返回给ret的话ret话会去访问原来n那块空间的值 函数调用先传参所以调用cout的时候ret先去访问n原来的那块空间得到n值之后再给cout cout函数会建立一块函数栈帧空间在原来的Count上所以打印出1 第二次调用cout的时候ret再去访问n的时候原来的空间已经被破坏了所以这一次打印出来的是随机值 #includeiostreamusing namespace std; int Test() {int n 1;return n; } int main() {int ret Test();cout ret endl;cout ret endl;cout ret endl;cout ret endl;return 0; }所以说如果用引用做返回值的话就需要确保返回的东西除了作用域是还存在的 4.引用的权限 #includeiostream using namespace std; int main() {int a 1;int b a;const double d a;const int c 1;return 0; }对于类型转换会先产生一个临时变量 然后临时变量具有常性所以不可以被修改 所以double da; 实际上并不是d去引用a 而是d去引用一个临时变量所以需要const去修饰 5.效率比较 #include time.h struct A { int a[10000]; }; A a; // 值返回 A TestFunc1() { return a; } // 拷贝 // 引用返回 A TestFunc2() { return a; } // 不拷贝 void TestReturnByRefOrValue() {// 以值作为函数的返回值类型size_t begin1 clock();for (size_t i 0; i 100000; i)TestFunc1();size_t end1 clock();// 以引用作为函数的返回值类型size_t begin2 clock();for (size_t i 0; i 100000; i)TestFunc2();size_t end2 clock();// 计算两个函数运算完成之后的时间cout TestFunc1 time: end1 - begin1 endl;cout TestFunc2 time: end2 - begin2 endl; }int main() {TestReturnByRefOrValue();return 0; } 由于传值返回要拷贝所以当拷贝量大次数多时比较耗费时间而传引用返回就不会因为返回的就是别名 6.指针跟引用的区别 定义和初始化 指针需要使用*来声明可以指向不同的对象。引用使用来声明必须在初始化时绑定到一个已存在的变量。 空值Null 指针可以具有空值null表示未指向有效的内存地址。引用不存在空引用的概念必须绑定到一个已存在的变量。 变量绑定 指针可以在声明后重新指向其他变量。引用在声明时就必须绑定到一个变量并且无法改变绑定对象。 空间占用 指针占用额外的内存空间通常是4或8个字节。引用不占用额外的内存空间只是变量的别名。 空间操作 指针可以进行算术运算和通过解引用操作符*访问所指的内存地址的值。引用不能进行算术运算直接访问绑定变量的值。 空间限制和安全性 指针可以指向任意类型的对象但需要注意空指针异常和野指针的问题。引用只能用于已存在的变量更加简洁和安全。 int main() {int a 10;int ra a;ra 20;int* pa a;*pa 20;return 0; }
http://www.dnsts.com.cn/news/9946.html

相关文章:

  • 马尼拉做网站营销网站首页设计
  • 提交网站入口网页制作对联
  • 南京网站开发询南京乐识wordpress添加广告联盟
  • 网站建站怎么报价东莞横沥理工学校
  • 做电脑系统网站如何进行企业营销型网站建设规划
  • 网站后台是怎么做的网站功能组件
  • 免费的网站登录模板网站怎么做移动的窗口
  • 郴州网站建设网站Wix网站开发 工作室
  • 网站建设公司-信科网络seo培训网的优点是
  • 网站基建建设一个人可以做几个网站负责人
  • 网站设计一般是什么专业网站开发合同甲方的权利
  • 做网站域名的好处是什么校友网站 建设
  • 网站推广找客户静态网站注入
  • 做网站的项目职责怎么写海丰县建设局网站
  • 设计网站公司搜索y湖南岚鸿知名网页qq登录保护怎么关
  • 烟台建设企业网站北京网站策划服务
  • 新加坡二手手机网站大全做网站要不要签合同
  • 吴江住宅城乡建设局网站微信怎么注册公众号
  • 手机如何做微商城网站设计做网站的需要什么资质证明
  • 建网站要学哪些软件上海最新新闻发布
  • 大连网站制作培训百度怎么优化排名
  • 石家庄站规模中国建设门户网站纪念币
  • 做网站搞什么流量wordpress主题绑定域名
  • 电商网站开发的功能拉新工作室在哪里接项目
  • 做网站怎么打不开localhostip网站查询服务器
  • 北京做网站源代码的网站空间大小查询
  • 怎么在电脑上自己做网站wordpress调用视频播放器
  • 网站建设中 敬请期待怎么解决买空间网
  • html5 网站模板下载路桥贝斯特做网站好吗
  • 深圳 网站设计优秀网页设计作品分析ppt