C++中的&和&&

瞎扯淡:

最近抽空看了一下有关Android 进阶方面的书,大概可以分为两个方向:

1.应用层(框架源码阅读分析、设计模式分析)其实就是对java 各个数据结构的把握(数组、队列、栈、集合),比如glide 各级缓存的原理,就是说各级缓存的通过java的数据结构实现了各级缓存,之前一直跟着别人怼源码,但并没什么用,源码调用太长太多三遍甚至10遍根本记不住,但是如果你知道各级缓存用的是什么实现的,业务逻辑你自己也可以实现了。

2.偏向底层的:linux 内核层,硬件抽象层,c++/c nativelib 等,看了一下老罗的源码情景分析,发现要先看 linux内核驱动的某一本书,然后看了一下 linux内核驱动相关的书,发现对c++的很多东西看的不是很懂,特别是一些符号基本看不懂,只能大概知道一些流程。

花了两天大致浏览了一下应用层方面的,关于源码大部分都是在怼流程,数据结构不清楚看流程没有任何意义,如果拿着源码怼流程稍微有点经验的都能分析清楚。所以感觉还是要回归数据结构设计的本质,看人家是使用什么结构实现了什么业务,又是怎么保证数据(线程)安全的,看有灵性的那一部分。这应该也是自己以后看源码关注的重点,不然很难进步了。

然后就是需要学习c++了,一直在应用层很多时候无法深入理解一些东西,感觉底层比应用层有趣太多了。什么kotlin、flutter 现在学了后面也会忘记,目前基本排不上用场。如果我现在会kotlin 或者 flutter 对我来说可能是我能用这些实现 我用java实现的东西,但如果我会c++,了解linux驱动,我能做到更多,对编程的理解会更深刻,机会也会更多。

扯淡结束

c++ 的&符号用法有三种,而&&又两种

一.&的用途

    1.位运算符(与)

     2.取地址符  int len = 0; int * p = &len;

    3.引用 ,常用在函数传参、临时变量引用。int len = 9;int & temp = len;

 

二、&&的用途

   1.作为关系运算符(并且) bool a = false; bool b = true; a && b ==> false;

   2.右值引用,Foo foo = Foo();右值可以看作是程序运行中的临时结果,右值引用可以避免复制提高效率

     Foo && foo = Foo();//少了一次复制,避免生成新的对象

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值