继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

【金秋打卡】第6天 2022重学C++5

杀入互联网江湖
关注TA
已关注
手记 58
粉丝 4
获赞 1

第一模块:

课程名称:百度大牛带你结合实践重学C++

章节:4-1 ~ 4-4

讲师姓名:quickzhao


第二模块:

课程内容:

4-1 ~ 4-4小节主要讲解了字符语法的常见陷阱和C语言在数组上的退化问题


第三模块:

学习心得:

4-1 字符语法的常见陷阱

'':单引号表示【字符】

"":双引号表示【字符串】

eg:

char c1='yes' // 编译器编译时可以运行通过,但会发生截断,不同编译器的截断方式不一样

char c1='a' // 这种就是正常的声明和定义一个字符


"y" 等价于 'y','\0' // C中所有的字符串都是用【\0】进行结尾的


补充C++中的基本数据类型:

布尔型bool

字符型char

整型int

浮点型float

双浮点型double

无类型void

宽字符型wchar_t

基本数据类型的特点是:没有【值的引用】,直接就是【值本身】


eg:

const char* c2 = "/" // 语法合法,因为【"/"】是一个字符串,属于引用类型,引用类型存在【值引用】,所以,上面的效果本质上就是将"/"】的值引用赋值给c2这个指针。引用赋值给指针是允许的。


const char* c2 = '/' // 语法不合法,因为【'/'】是一个字符,字符不存在值引用,所有这里就会报错

改造:

char c2  = '/';

const char* c2p = &c2 //通过取地址符号,获取【'/'】值所在的地址(地址本质上也是一个引用)


C语言的特点:

高级语言中的低级语言,小巧,高效,接近底层


C++对C语言在字符、字符串上的优化:

C++中引入了string类型,用于表示字符串,在语法形式上对【字符】和【字符串】进行了区分。


C++是C的超集,所以在C++中可以使用【C的方式进行编程】,但是是不推荐的,能用更好清晰的方式,就尽量用更清晰的方式去编程。


C++ 中通过string来规避C中的字符、字符串陷阱,eg:


4-3 C语言指针和数组的常见问题

C语言:

1.数组做为函数参数时存在退化行为,即:数组会退化为【数组的指针】

eg:

http://img1.mukewang.com/6362897900018cdd07830409.jpg

问题的根本原因:在语法层面避免【大对象】作为参数进行传递

从而节约内存空间


C++中的解决方案:

STL容器与引用的使用,实现底层包装,保证效率的同时保证语法上的简单安全。

两种写法的区别:

http://img1.mukewang.com/63628989000167c007060559.jpg

http://img2.mukewang.com/6362899200016f0704940281.jpg


补充:

1.引用和指针的区别:

引用可以拿到对象的所在地址;

指针不但可以拿到对象的所在地址,还能对地址进行计算;


处理二维数组,eg:

http://img3.mukewang.com/6362899d0001304f04260347.jpg


第四模块:

课程截图:

http://img1.mukewang.com/636289280001d78b07580221.jpg

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP