位运算符、赋值运算符、杂项运算符

位运算符 、 赋值运算符、杂项运算符

位运算符作用与位,并逐位执行操作,&、|、^的真值如下所示:
在这里插入图片描述

#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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值