第一模块:
课程名称:百度大牛带你结合实践重学C++
章节:2-5~2-8
讲师姓名:quickzhao
第二模块:
课程内容:
2-5~2-8小结讲解了C++语言的标识符、关键字、变量和常量以及注释的写法
第三模块:
学习心得:
2-5 语言的标识符和关键字
理解:namespace【命名空间】
eg:
int m;
上面的这个代码声明了一个变量,这个变量的名字就是m;
也可以说这个变量的命名空间叫m,这个【见名知意】的m是给【人】看的,而不是给【计算机】看的,计算机看到的是这块内存的地址,比如【0x003FFDDC】这种16进制数,所以,【m】与【0x003FFDDC】是等价的,都指向同一块内存。
C++标识符规则:
C++关键字(常用)(关键字会不断的更新):
标识符范式:
2-6 变量与常量
变量:
逗号分隔,分号结束
定义变量:
常量:
定义常量:
推荐使用const定义常量,第一种方式是早期在C语言中被大量使用方式
整数常量:
整数常量举例:
可以有前缀、后缀;
一般整数都是用10进制表达,特殊情况用16进制表达;
布尔常量:
【短文本、长文本】、【窄字符、宽字符】
字符常量:
转意字符常量表:
\ 是一个转意字符
补充:
1.栈堆
变量是在栈区还是在堆区,一个比较简易的判断标准是:
new 出来的都在堆,方法中非new的都在栈
内存分为【栈】与【堆】,C++中【栈】中的内存会随着【栈帧】的弹出而回收,但是,【堆】中的内存就不会被自动回收,【堆】中的内存只能程序员自己主动回收,即:new和delete必须成对出现。
2.变量在内存中的空间以字节为单位进行分配,CC是VS下对内存未初始化区域的信息默认存储内容
3.C++中的【宏】
C++中的【宏语法】一定要小心使用,不熟不要用,否则出错不好排错
eg:
修正:
4.【指针】和【指针的引用】不是一回事!
引用是一种特殊的指针
5.两种编程模型:
泛型编程
面向对象编程
建议:【泛型编程】抽象度更高,一般不建议使用,一个工程中,使用一种【编程模型】就好了,【泛型编程】一般用在开源框架中,属于高阶编程的一种;
6.内存溢出分为两种:
栈溢出
堆溢出
不管是那种【溢出】,其实都是内存不够用了,一般栈的内存会比堆的内存要小,所以,如果有大量的空间处理,就不要在栈上来完成,可以在堆里new出空间来操作,避免栈内存overflow;
补充: Widnows默认给一个线程1M的栈空间只是一个经验值,不同版本的系统可能会不一样,VS2015可以手动修改栈保留空间大小;
7.临时对象
8.头文件与源文件
头文件放声明
const 常量定义
内联函数定义(1.有inline修饰 2.在类定义的函数)
类定义
源文件放定义
9.区别:
const 修饰内容时的规则:
先看左侧,左侧最近的不可修改
左侧没东西,则最近的右侧不可修改
char const * p:char不可变(也就是数据不变)
char * const p:*不可变(也就是指针不可变)
const char*:char不可变
const char * const p:char不可变,*不可变
10.指针和引用:
C++中能用【引用】就用【引用】,避免使用指针;
Java中的引用和C++中的指针,概念上比较接近,只是被移除了大部份特性,保留了简单的【指向】功能;
3篇博文:
https://blog.csdn.net/zhongyili_sohu/article/details/99293364
https://www.cnblogs.com/qiumingcheng/p/7819639.html
https://www.cnblogs.com/duwenxing/p/7421100.html
eg:
int a; // 声明一个变量
int & a; // 声明一个引用
int * a; //声明一个指针
a、& a、* a:本质上都是命名空间,命名空间的本质就是【内存块的地址】
全局变量:
在代码执行的全过程中都存在的变量
基类:
就是父类
虚函数:就是java中的接口
副本会占用内存,用完后被销毁(弹出栈帧)
11.临时对象:
C++中所有临时对象都会被const修饰
12.C++中创建对象的两种方式:
栈上创建(stack)
堆上创建(heap)
博文:
https://www.cnblogs.com/qiumingcheng/p/7819639.html
13.内存分配的3种方式:
静态存储区:程序编译时分配(全局、静态变量)
栈:弹出栈帧时自动回收,程序运行时分配,栈内存容量有限(函数的局部变量)
堆:【malloc与free】、【new与delete】,程序运行时分配(其他所有数据)
2-7 注释
程序的注释是解释性语句,可以在C++代码汇中包含注释。这可以提高源代码的可读性。
所有的编程语言都允许某种形式的注释。
C++的注释支持:
单行注释 //
多行注释 /**/
C++中的所有注释字符都会被C++编译器所忽略
注释的原则:
好的命名和代码本身就是最好的注释(写语义话的代码)
重要、复杂的代码段应该要标记上注释,且注释先行,通过注释组织伪代码
注释写了就要写清楚,要确保注释和代码在语义上的一致性
2-8 课后练习
......
第四模块:
课程截图: