C++基础 (1) 第一天 C++相对C的改进 命名空间 引用

第一天

 

语法 STL 数据结构  设计模式…

 

2 C++语言的间接

 

C++ = C语言+面向对象

 

本贾尼

 

 

 

语言分类:

不关心效率 只关心架构:java/脚本语言

效率:(内存要自己管理了,操作指针)C++

 

 

 

 

3 C++的hello

 

 

4 C++的命名空间

 

 

 

5  C++对C语言的增强-全局变量-struct-函数检测

 

 

6 bool类型

 

 

7 c++对三目运算符的增强

C++中

返回的是a的别名a

 

 

//  举例(a<b? a: b) =30

这句话 在C语言编译器中报错”表达式不能做左值”

因为在C语言编译器中,表达式最终返回的是一个数值 而不是一个地址

在C++中就不会报错,C++中表达式 返回的是a变量的别名

 

(语法糖

 

8 三目运算分作为左值需要注意

 

9 const增强

 

真正的常量

(在 C++中 就不会报错

 

 

 

 

 

10 const 和#define的区别

 

define和const的阶段不一样 define是预处理器 const是编译器处理的

 

11枚举类型的增强

 

12中午回顾

namespace 关键字

 

Boolean类型 只要赋值为非0 就是1

 

C语言会报错 C++不会报错

 

13 引用的基本概念

 

14 引用作为函数参数

 

15 引用的本质

 

 

编译器在取值和赋值的时候自动做了&和*的操作 本质是一个常指针

 

结论:

 

// 在研究引用的时候,可以将引用理解为一个 常指针

// 在理解的引用的时候,可以将引用理解为一个变量的别名 (否则读代码的时候容易懵

 

有大小 4字节 必须初始化 不能被改变

 

16 引用作为函数返回值

当函数的返回值 是一个局部变量的引用的时候 不能再用引用来接收

因为 局部变量执行完之后 值会被销毁

(注意值传递和 用 引用接受的区别)

 

17 引用作为函数返回值可以当左值

 

当引用作为函数的返回值的时候,只要这个引用是合法的,就可以当左值

 

 

传统的二级指针的方法

 

使用引用

 

 

19 const引用

注意指针p指向常量的时候临时开辟了一个空间

 

字面量:

… 

 

 

 

https://zh.wikipedia.org/wiki/%E5%AD%97%E9%9D%A2%E5%B8%B8%E9%87%8F_(C%E8%AF%AD%E8%A8%80)#%E7%94%A8%E6%88%B7%E5%AE%9A%E4%B9%89%E7%9A%84%E5%AD%97%E9%9D%A2%E9%87%8F

 

字面量:寄存器中临时存的一个数值,计算后放到内存中,它就没了

 

结论: 如果想对一个字面量做引用的话,只能用const的引用

 

 

 

posted @ 2019-03-11 19:37  hh9515  阅读(297)  评论(0编辑  收藏  举报