“第十七天” 位操作符,单目操作符

        位操作符:  &  与   , |  或   ,  ^   异或

注:位操作符的操作数必须是整数

        实现两个数的交换:

异或操作符实现交换,这里对异或操作符的运用也挺有意思的,我感觉倒是在一定程度上体现了 异或操作符 存储数据的能力,不过存储的是是否相同,通过和其中一个变量再次比较,就可以得到另一个变量,这一点记在笔记本上了,忘了的话,回看。

求整型存储在内存中的二进制中 1 的个数:

位操作符的优先级低于相等运算符;

右移操作符一般是算术操作符,左边补的是原符号位

        复合赋值符

+=    -=   *=   /=   %=   >>=   <<=  &=   |=  ^=    

赋值操作符可以连续赋值,顺序从右往左,但太支持这种写法。

%p 打印地址。这个是六十四位的,打印的十六进制

        单目操作符: 只有一个操作数

        !  -    +    &    sizeof         --   ++     *    ( )      

sizeof 是一个操作符,不是函数,计算的是变量 / 类型所占内存空间的大小,单位是字节。

strlen是库函数,是用来求字符串长度的,至空白符 ‘ \0 ’结束,中间的有空格什么的也算一个字符

~ : 按二进制取反,原位 1 变 0, 0 变 1;

* :解引用操作符, 指针的那个  *p  

():强制类型转换 ,int a  = (int)3.14   ,将3.14强制转换成整型。

注意传参是,形参接收的到底是什么,自己现在是知道的,但不能很好的反应过来。

       关系操作符: >  <   >=   <=  ==    !=

对于关系操作符,整型的关系比较是可以的,但对于浮点型直接比较大还可以,但如果要进行相等的判断,由于浮点型在内存中的存储方式,一般不可以直接比较,要通过对精度的限制,来进行相等判断,字符串则不可以用这种关系操作符比较。

如: “abc” == “abcde”,这样写是在比较两个字符串的地址,而非判断是否一样。

        逻辑操作符: && 逻辑与  ||  逻辑或  

这里注意 && , || 和 & , | 的区别 ,前者是逻辑操作符,后者是位操作符。

&&的判断是从左向右进行的,如果在判断的过程中,遇到一个假,则后面不再运行。

||的判断是从左向右进行的,如果在判断的过程中,遇到一个真,则后面不再运行。

这里可以看到,由于a等于0,所以运行第一个语句 a++的时候,语句就可以判断为假(逻辑与,有一假则为假),所以后面的b++,d++的语句都没有运行,b,d的值也没有改变。

这里是逻辑或,第一个a++,由于a=0,所以第一个返回值为0,到第二个语句 b++ ,由于b=2,判断为真,语句可以判断为真,所以后面语句不再进行,d的值没有改变。

        条件操作符(三目操作符): 有三个操作数      形式: exp1?exp2:exp3

这里下面好像执行的相当于是 int c=b=3;这里有问题不明白

        逗号表达式

exp1,exp2,exp3,.......expN

逗号表达式,就是用逗号隔开的多个表达式;从左向右依次执行,整个表达式的结果就是最后一个表达式的结果。

下面这个例子感觉比较好的反应了逗号表达式的运用,通过对表达式的合理运用,可以使程序变得很简洁。

        下标引用:[ ] ,这里注意 7[arr] 的形式也可以,这种形式其实还蛮新奇的。

[ ]是个操作符,arr[7] 好比 *(arr+7),而7[arr] 好比是 *(7+arr)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值