位运算符 、 赋值运算符、杂项运算符
位运算符作用与位,并逐位执行操作,&、|、^的真值如下所示:
#include<stdio.h>
int main(){
unsigned int a = 60; //60 = 0011 1100
unsigned int b = 13; //13 = 0000 1101
int c = 0;
c = a & b;
printf("c=%d\n",c); //输出12 = 0000 1100
c = a |b;
printf("c=%d\n",c); //输出61 = 0011 1101
c = a ^ b;
printf("c=%d\n",c);//输出49 = 0011 0001
c = ~a;
printf("c=%d\n",c);//输出-61 = 1100 0011
c = a<<2;
printf("c=%d\n", c); //输出240 = 1111 0000
c = a>>2;
printf("c=%d\n", c); //输出15 = 0000 1111
system("pause");
}
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a = 21;
int c;
c = a;printf("Line 1 -= 运算符实例,c 的值 = %d\n",c);
c +=a;printf("Line 2 += 运算符实例,c 的值 =%d\n",c);
c -=a;printf("Line 3 -= 运算符实例,c 的值 =%d\n",c);
c *=a;printf("Line 4 *= 运算符实例,c 的值 =%d\n",c);
c /=a;printf("Line 5 /= 运算符实例,c 的值 =%d\n",c);
c =200;
c %=a; printf("Line 6 %= 运算符实例,c 的值 =%d\n",c);
c<<=2; printf("Line 7 <<= 运算符实例,c 的值 =%d\n",c);
c>>=2; printf("Line 8 >>= 运算符实例,c 的值 =%d\n",c);
c&=2; printf("Line 9 &= 运算符实例,c 的值 =%d\n",c);
c^=2; printf("Line 9 ^= 运算符实例,c 的值 =%d\n",c);
c|=2; printf("Line 9 |= 运算符实例,c 的值 =%d\n",c);
system("pause");
}
输出
Line 1 -= 运算符实例,c 的值 = 21
Line 2 += 运算符实例,c 的值 =42
Line 3 -= 运算符实例,c 的值 =21
Line 4 *= 运算符实例,c 的值 =441
Line 5 /= 运算符实例,c 的值 =21
Line 6 = 运算符实例,c 的值 =11
Line 7 <<= 运算符实例,c 的值 =44
Line 8 >>= 运算符实例,c 的值 =11
Line 9 &= 运算符实例,c 的值 =2
Line 9 ^= 运算符实例,c 的值 =0
Line 9 |= 运算符实例,c 的值 =2
杂项运算符 ↦ sizeof & 三元
下表列出了 C 语言支持的其他一些重要的运算符,包括 sizeof 和 ? :。
运算符 描述 实例
sizeof() 返回变量的大小。 sizeof(a) 将返回 4,其中 a 是整数。
& 返回变量的地址。 &a; 将给出变量的实际地址。
- 指向一个变量。 *a; 将指向一个变量。
? : 条件表达式 如果条件为真 ? 则值为 X : 否则值为 Y
#include<stdio.h>
#include<stdlib.h>
int main()
{
int a=4;
short b;
double c;
int* ptr;
//sizeof 运算符
printf("Line 1-变量a的大小 = %1u\n",sizeof(a));
printf("Line 2-变量b的大小 = %lu\n",sizeof(b));
printf("Line 3-变量的大小 = %lu\n",sizeof(c));
// &和* 运算符
ptr = &a; //ptr 现在包含'a'的地址
printf("a的值是%d\n",a); //a的值是4
printf("*ptr是%d\n",*ptr); //*ptr表示ptr指向4
printf("ptr是%d\n",ptr); //输出a的地址
printf("&a是%d\n",&a); //输出a的地址
//三元运算符
a = 10;
b = (a ==1)? 20:30; // 若a等于1,则输出20,否则输出30
printf("b的值是%d\n",b);
system("pause");
}
C