C++概述部分内容记录
文章目录
- 1、const与指针
- 1.1、指向常量的指针
- 1.2、常指针
- 1.3、指向常量的常指针
- 2、內联函数
- 3、引用
- 4、传递数组引用
1、const与指针
int a;
int* b = &a;
这里分配了两个地址,一个是指针b指向的地址,一个是变量a存放的地址。const在不同的位置代表着能够修改的东西不同。这是核心本质。
1.1、指向常量的指针
const在最前面,作用于指向的内容不变。 指针指向的内容不能改变,但指向的地址可以改变。
int main(){int a = 1;const int* b = &a;int c = 2;//查看原地址,原内容。cout << &a << ", "<< b << endl;cout << *b << endl;//修改b指针指向的地址b = &c;cout << &c << ", "<< b << endl;cout << *b;//*b = c 报错,因为这里修改了b指针的内容。return 0;
}
可以看到b指针的地址变了,指向了c;
1.2、常指针
const在*后变量名前,作用于指针指向的的地址。 指针指向的内容可以改变,但指向的地址不能改变。
int main(){int a = 1;int* const b = &a;int c = 2;//查看原地址,原内容。cout << &a << ", "<< b << endl;cout << *b << endl;//修改b指针指向的地址*b = c;cout << &c << ", "<< b << endl;cout << *b;//b = &c 报错,因为这里修改了b指针的地址。return 0;
}
可以看到b指针的地址没变,但是内容变了。
1.3、指向常量的常指针
指向的地址,指向的内容都不能更改。
const int* const b;
2、內联函数
inline float circle(float r) { return 3.1416*r*r; } int rectangle(float r) { return 3.1416*r*r; }
常规函数:系统每次在main函数中调用到rectangle函数的时候就单独执行rectangle函数体。
內联函数:系统每次在main函数中调用到circle函数的时候直接将circle函数复制到main函数中调用。
优点:在內联函数体量较小的时候,可以用空间换取时间,提高程序效率。
3、引用
简单来说就是在将参数传入函数的时候,不采用引用就传入的变量是在新的地址上的一个变量,对该变量做修改不会影响到原变量。如果传入的是引用,而是直接将变量本身传入到函数中,修改该变量原变量会做同样的修改。
#include<iostream>
using namespace std;
int sw(int a) {cout << &a << endl;
}
int aw(int &a){cout << &a << endl;
}
int main(){int a = 3;cout << &a << endl;sw(a);cout << endl;cout << &a << endl;aw(a);return 0;
}
可以看到前两行输出的地址不同,后两行输出的地址是一样的,基于地址的不同,因此在函数中对穿进来的变量的修改将会影响到原变量的内容。
4、传递数组引用
//&要和数组名用括号括起来
void change(int (& arr)[MAXN]);
C++概述部分内容记录相关推荐
- Appendix:附录文件内容记录脚本代码转换过程记录
Appendix:附录文件内容记录脚本代码转换过程记录 附录文件内容记录脚本代码转换过程记录 Microsoft Windows [版本 10.0.14393] (c) 2016 Microsoft ...
- Appendix之setup.py:附录文件内容记录setup.py
Appendix之setup.py:附录文件内容记录setup.py 附录文件内容记录setup.py from __future__ import print_functionfrom distut ...
- Visual Studio 2017更新内容记录
Visual Studio 2017更新内容记录 个人认为值得一提的重点更新内容: IDE: 团队资源管理器中的新增 Git 功能并增强了连接体验 - 在 Visual Studio 2017 中可使 ...
- Cs231n课堂内容记录-Lecture2-Part2 线性分类
Lecture 3 课程内容记录:(上)https://zhuanlan.zhihu.com/p/20918580?refer=intelligentunit (中)https://zhuanlan. ...
- 计算机论文指导记录范本,论文指导内容记录怎么写 3篇 论文指导记录20篇
论文指导内容记录怎么写 3篇 论文指导记录20篇 论文指导内容记录怎么写 3篇 论文指导记录20篇精品文档,仅供参考论文指导内容记录怎么写 3篇 论文指导记录20篇指导是一个汉语词语,读音为zhdo, ...
- 电脑桌面日历便签软件怎么通过月视图查看某一天的便签内容记录?
一.打开已登录的电脑桌面便签软件敬业签Windows版,默认进行便签主界面,点击右上角日历按钮,打开日历月视图界面: 二.在日历月视图界面,默认显示当月的日历月视图,右上角可以切换上一月或者下一月,选 ...
- 新浪微博APP开发应用示例之获取指定微博账户的微博内容记录
最近在搞下新浪微博APP开发应用,这个示例之获取指定微博账户的微博内容记录 合肥网产品中心 新浪微博APP开发应用示例演示 < html > < head > < tit ...
- 计算机实验内容记录,关于实验数据自动记录到电脑上的问题
关于实验数据自动记录到电脑上的问题以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 关于实验数据自动记录到电脑上的问题 实 ...
- 教学概述+教学内容+教学原则+教学方法+教学组织...+教学模式和教学策略
3.1 教学概述 一.教学的概念和意义 二.教学的任务 3.2教学内容 一.教学过程的本质 二.教学过程的基本规律 三.教学过程的基本阶段(结构) 3.3 教学原则 目标:理解并识记八大教学原则 1. ...
- 修改html不显示内容,记录网友修改网页导致文章内容不显示的问题
一个网友联系老蒋,自己的网站在之前修改模板添加广告的,但是不清楚什么问题导致目前网站首页能正常打开,但是内容页只能显示标题,内容是无法打开的.而且这个问题其实在十几天前有修改过页面,自己后来都没有动过 ...
最新文章
- js实现UTC时间转为北京时间,时间戳转为时间
- ikvm Java中异常_使用IKVMC将Java转换为.NET库 – 警告IKVMC0108:...
- C# 该行已经属于还有一个表 的解决方法
- 看见到洞见之引子(二)机器学习算法
- 【转】非常道-中小软件公司项目管理
- Centos 安装配置gerrit
- 转 13种最为荒谬的编程语言(Bugku 加密)
- 最新!基于深度学习的图像超分技术一览
- centOS 安装远程桌面
- 《王亡於江上》之周昭王姬瑕
- SAP PI SLD RZ70 系统架构目录数据提供者 HTTP(S) 配置
- win10专业版有必要吗_Win10专业版和家庭版系统有什么不同?
- EasyClick iOS脚本免越狱免硬件实现方案_可云控大量部署
- 信捷原创程序,8个伺服轴。 PLC:信捷XDM-60T10 HMI:信捷TG765 总体I/O在200个点之内
- C#增加SVN版本管控方法
- lex与yacc程序学习(3)——yacc源程序的结构yacc编译器的实践
- 前端基础三之JavaScript基础
- 关于新公司的一些感悟
- 鸿蒙开发学习书籍全收录【上】
- Java基础【之】JDK环境配置(Windwos)