为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
C++

第一模块:

课程名称:百度大牛带你结合实践重学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:

https://img1.sycdn.imooc.com//6362897900018cdd07830409.jpg

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

从而节约内存空间


C++中的解决方案:

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

两种写法的区别:

https://img1.sycdn.imooc.com//63628989000167c007060559.jpg

https://img1.sycdn.imooc.com//6362899200016f0704940281.jpg


补充:

1.引用和指针的区别:

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

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


处理二维数组,eg:

https://img1.sycdn.imooc.com//6362899d0001304f04260347.jpg


第四模块:

课程截图:

https://img1.sycdn.imooc.com//636289280001d78b07580221.jpg

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消