位于赋值运算符两侧的两个值,赋值号左边的叫做左值,右边的叫右值
L-value中的L指的是Location,表示可寻址
R-value中的R指的是Read,表示可读
左值,指的是如果一个表达式可以引用到某一个对象,并且这个对象是一块内存空间且可以被检查和存储,那么这个表达式就可以作为一个左值
右值,指的是引用了一个存储在某个内存地址里的"数据"
如“int a=66”,声明了一个整型变量a,则a是左值,66是右值
#include<stdio.h>
int main()
{
int a=10;a左值 b右值
scanf("%d",&a);
printf ("%d",a);
return 0;
}
位运算
注意:所有的位运算都是针对于二进制的
位运算:是指二进制的运算
位(bit):是计算机最小信息单位,一个位能表示两个信息"0"或"1"
以下为二进制运算
#include<stdio.h>
int main()
{
int num=4;
int res=num&4;
printf("%d",res);
return 0;
}
按位与(&):&4&2
100->4
&010
000(有零则零)
按位或(&):(有1则1)&3&2
11(3)
10(2)
11
^按位异或(相同为零,不同为一)
~取反0变1,1变0
<<移位右边补零
.>>右移左边补零
左移运算符:<<左移一位相当于原来的数值乘以2
操作数只能是整型或字符型的数据
除取反~外,均为双目运算符