C语言基础--运算符

#include <stdio.h>


int main(void)
{
int i,j;
i = j = 1;
/* 运算符 */
//1.单目运算符
//i++,++i,i--,--i
//特点:只有一个变量就能完成的运算
printf("%d ",i++);
printf("%d ",++i);
printf("%d ",i--);
printf("%d\n",--i);




//2.双目运算符
//特点:必须有两个变量才能完成的运算
//+,-,*,/,%,= += -= *= /=
//=运算符在计算机中 比较特别 其实是赋值运算
//并且是一个有返回值的表达式 
//可以将该返回值继续赋值给另外一个变量
//i=j=1;是按照i=(j=1)的形式赋值的
printf("%d %d %d %d %d %d\n",i+j,i-j,i*j,i/j,i%j,i=j);
printf("%d ",i+=j);
printf("%d ",i-=j);
printf("%d ",i*=j);
printf("%d\n",i/=j);




//3.三目运算符
//特点: a?b:c 有三个参数的才能进行的运算
//a一般情况下是一个表达式,也可以是一个int类型的常量 
//如果a为真,则返回b,如果a为假,则返回b
i=2;
j=3;
printf("%d %d\n",(i>j)?i:j,(i<j)?i:j);
printf("%d %d\n",1?i:j,0?i:j);


/* 逻辑运算符 */
//>,<,>=,<=,!=,==,!,&&,||
//!运算可以视为一个单目运算符,非0则为0,是0则为1
printf("%d %d %d %d %d %d %d %d\n",
i>j,i<j,i>=j,i<=j,i!=j,i==j,!i,!0);

//&& 运算中 左右两边的表达式或值如果有任一值为0
// 则返回0
//|| 运算中 左右两边的表达式或值如果有任一值为1
// 则返回1
printf("%d %d\n",i&&0,i||0);


/* 位运算符 */
//& | ^ ~ << >>
//& 运算中 遇0则为0 均1则为1
printf("%d %d %d %d\n",1&0,1&1,0&1,0&0);
//| 运算中 遇1则为1 均0则为0
printf("%d %d %d %d\n",1|0,1|1,0|1,0|0);
//^ 运算中 相同则为0 不同则为1
printf("%d %d %d %d\n",1^0,1^1,0^1,0^0);
//~ 取反 按位取反 所有的数按位取反后 均是该值的负值-1
//求10进制数的2进制负数 按位取反后+1
//0000 0001 1
//0000 0000 0
//1111 1111 -1
printf("%d\n",~3);


//左移时,补位的数字为0 即使是负数也依然为0
//右移时,补位的数组按符号位决定 正数为0 负数为1
//0 左右移位没有任何效果
//-1 在右移时 也没有任何效果
printf("%d %d\n",-1 << 3,-1 >> 3);








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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值