运算符的应用
1. sizeof(取占内存大小运算符) 求所占字节数
eg: #include<stdio.h>
int main()
{
int a,n1;
n1=sizeof(a);//其它可写形式为:n1=sizeof a;n1=sizeof (int);
printf("%d\n",n1);
return 0;
}所求结果为4,一个整形变量占4个字节
sizeof 编译期间值的类型,并不会参与运算
eg: #include<stdio.h>
int main()
{
int a=10,n1;
n1=sizeof(a++);
printf("%d %d\n",n1,a);
return 0;
}所求结果为4 10
2. = =与 =
==是关系运算符,eg :a==10表示的是a的值等于10
=是赋值运算符,eg :a=10表示把10的值赋给a
3. ~:按位取反
&:按位与 eg:7&9 (7 0000 0111 9 0000 1001):0000 0001
^:按位异或 eg:7^9:0000 1110(异或:相同为0,不同为1)
|:按位或 eg:7|9:0000 1111(或:有1为1)
4.&& ||(逻辑运算符)
表达式1&&表达式2&&表达式3
如果表达式1为假,即之后的表达式不再执行(与:有假即假)
eg: #include<stdio.h>
int main()
{
int a=2,b=0,c=3;
if(a++ && b++ && c++)
{
printf ("ture");
}
else
{
printf ("false");
}
printf("%d %d%d\n",a,b,c);
return 0;
}输出结果为 false 3 1 3
表达式1||表达式2||表达式3
若表达式1为真即之后的表达式不在执行(或:有1为1)
eg: #include<stdio.h>
int main()
{
int a=0,b=2,c=3;
if(a++ || b++ || c++)
{
printf ("true");
}
else
{
printf ("false");
}
printf("%d %d%d\n",a,b,c);
return 0;
}输出结果为true 1 33
4. ++ & --
eg:#include<stdio.h>
int main()
{
int a=5;
a=a++;
printf(“%d\n”,a);
a=++a;
printf(“%d\n”,a);
return 0;
}输出结果为 6 7
#include<stdio.h>
int main()
{
int a=5;
a=a--;
printf(“%d\n”,a);
a=--a;
printf(“%d\n”,a);
return 0;
}输出结果为 4 3
5. ,(逗号运算符)
该运算符只取最后一个算术表达式的值
eg: #include<stdio.h>
int main()
{
int a=2,b=3,c=5;
c=(a++,b++);
printf("c==%d\n",c);
return 0;
}运行结果为c==3
6. << >>(左移 右移(位运算符))
eg :14 0000 1110
14<<1:00011100 28=14*2^1
14<<2:00111000 56=14*2^2
14>>1:00000111 7=14/2
14>>2:00000011 3=14/2^2
>>:相当于除法 <<:相当于乘法