C++ primer学习笔记_6_函数---函数定义、参数传递
1、
习题参考:
6.14 举一个形参应该是引用类型的例子,再举一个形参不能是引用类型的例子。
答:
形参使用引用类型的情况:(1)避免拷贝传递大对象的时候,这里的string对象s;(2)当需要从函数内部返回值的时候
string::size_type find_char(const string &s,char c,string::size_type &occurs)
{
	auto ret = s.size();
	occurs = 0;
	for (decltype(ret) i = 0; i != s.size(); ++i){
		if (s[i] == c){
			if (ret == s.size()){
				ret = i;
			}
			++occurs;
		}
	}
	return ret;
}形参不能使用引用类型的情况:
2、顶层const作用于对象本身
const int ci = 42; // 不能改变ci,const是顶层的
int i = ci; //正确:当拷贝ci时,忽略了它的顶层const
int * const p = &i; //const是顶层的,不能改变p的值
*p = 0;  //正确,通过p改变其指向的对象的值是允许的当用实参初始化形参的时候会忽略掉顶层const。
void fcn(const int i)
{
        /* fcn can read but not write to i */
}
void fcn(int i)   // error: redefines fcn(int)
{
        /* ...   */
}3、顶层const和底层const
顶层const:表示指针本身是一个常量;
底层const:表示指针所指的对象是一个常量。
C++ primer学习笔记_6_函数---函数定义、参数传递的更多相关文章
- C++ Primer 学习笔记_6_标准库类型 -- 命名空间using与string类型
		 标准库类型(一) --命名空间using与string类型 引: 标准库类型是语言组成部分中更主要的哪些数据类型(如:数组.指针)的抽象! C++标准库定义的是高级的抽象数据类型: 1.高级:由 ... 
- C++ Primer学习笔记(三) C++中函数是一种类型!!!
		C++中函数是一种类型!C++中函数是一种类型!C++中函数是一种类型! 函数名就是变量!函数名就是变量!函数名就是变量! (---20160618最新消息,函数名不是变量名...囧) (---201 ... 
- IOS学习笔记06---C语言函数
		IOS学习笔记06---C语言函数 -------------------------------------------- qq交流群:创梦技术交流群:251572072 ... 
- Typescript 学习笔记三:函数
		中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ... 
- Go语言学习笔记七: 函数
		Go语言学习笔记七: 函数 Go语言有函数还有方法,神奇不.这有点像python了. 函数定义 func function_name( [parameter list] ) [return_types ... 
- JavaScript:学习笔记(5)——箭头函数=>以及实践
		JavaScript:学习笔记(5)——箭头函数=>以及实践 ES6标准新增了一种新的函数:Arrow Function(箭头函数).本文参考的链接如下: MDN箭头函数:https://dev ... 
- Python学习笔记之常用函数及说明
		Python学习笔记之常用函数及说明 俗话说"好记性不如烂笔头",老祖宗们几千年总结出来的东西还是有些道理的,所以,常用的东西也要记下来,不记不知道,一记吓一跳,乖乖,函数咋这么多 ... 
- IOS学习笔记07---C语言函数-printf函数
		IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ... 
- ES6学习笔记<三> 生成器函数与yield
		为什么要把这个内容拿出来单独做一篇学习笔记? 生成器函数比较重要,相对不是很容易理解,单独做一篇笔记详细聊一聊生成器函数. 标题为什么是生成器函数与yield? 生成器函数类似其他服务器端语音中的接口 ... 
随机推荐
- python 一般处理
			#!/usr/bin/env python# -*- coding:utf-8 -*-# Author:afei# QQ:97259460# date = 2019/8/29 s_code1=''s_ ... 
- https://www.jianshu.com/p/1038c6170775
			import os # 方法一: os.walk实现 def items_dir(rootname): l = [] for main_dir, dirs, file_name_list in os. ... 
- 【Gitlab】宝塔gitlab 修改管理员账号密码
			步骤: a. 切换目录:cd /opt/gitlab/bin b.执行 :sudo gitlab-rails console production 命令 开始初始化密码 c.在 irb(main):0 ... 
- Windows下启动、重启、停止nginx
			在Windows下操作nginx,需要打开cmd 进入到nginx的安装目录下 1.启动nginx: start nginx 或 nginx.exe 2.停止nginx(stop是快速停止nginx, ... 
- qt model/view/delegate
			Qt Model/View理解(一)---构造model https://blog.csdn.net/weixin_42303052/article/details/89233887 Qt Model ... 
- 【Spring Cloud学习之二】服务注册和发现
			环境 eclipse 4.7 jdk 1.8 Spring Boot 1.5.2 Spring Cloud 1.2 一.EurekaEureka是Netflix开源的一个RESTful服务,主要用于服 ... 
- Redis实现实时热点查询
			Redis内存淘汰 定义: 指的是用户存储的一些键被可以被Redis主动地从实例中删除,从而产生读miss的情况 机制存在原因: Redis最常见的两种应用场景为缓存和持久存储 首先要明确的一个问题是 ... 
- IntelliJ IDEA重新打开后把字母隐藏怎么办
			默认Font的字体melno不行,r会隐形 解决方案:更换idea字体,点击apply按钮即可正常显示 修改Font为的consoleas Size:16 line spacing:1.25 
- identity server4
			dotnet new -i identityserver4.templates 添加模板 
- html 打开新页面
			设置 target 页面 这样会点击一次就产生一个页面 页面 填任意名称,多个点击只产生于一个页面 
