初识操作符-c语言

算数操作符:+ - * / %

int main()
{
       //除号的两端都是整数,执行的为整数除法;有一端或两端为小数,执行的是小数除法
       int a = 9 / 2;
       printf("%d\n", a);//4
       float b = 9 / 2;
       printf("%f\n", b);//4.0
       float c = 9 / 2.0;
       printf("%f\n",c);//4.5
       int d = 9 % 2;//% -取模,得到的是余数
       printf("%d", d);//1
       return 0;
}

移位操作符:

>>左移操作符-移动的是二进制位

<<右移操作符

int main()
{
       int a = 2;
       int b = a << 1;
       printf("%d\n", b);//4
       return 0;
}

位操作符:

&:按位与

|:按位或

^:按位异或

赋值操作符:= += -= *= /= &= ^= |= >>= <<=

int main()
{
       int a = 2;
       a = a + 5;
       a += 5;
       a = 6;
       a = a - 3;
       a -= 3;
       a = a % 3;
       a %= 3;
       printf("%d", a);
       return 0;
}

a+b: +有2个操作数,双面操作符

单目操作符:只有一个操作数

!:逻辑反操作

-:负值

+:正值

&:取地址

sizeof:操作数的类型长度(以字节为单位)

~:对一个数的二进制按位取反

--:前置、后置--

++:前置、后置++

(类型):强制类型转换

int main()
{
       //0表示假,非0就是真
       int a = 10;
       printf("%d\n", !a);//0
       return 0;
}
int main()
{
       //sizeof是一个操作符
       //不是函数
       //计算类型或者变量的大小的
       int a = 10;
       printf("%d\n", sizeof a);
       printf("%d\n",sizeof(int));
       return 0;
}
int main()
{
       //10
       int arr[10] = { 0 };
       printf("%d\n", sizeof(arr));//40 计算的是数组的总大小,单位是字节
       printf("%d\n", sizeof(arr[0]));//4
       int sz = sizeof(arr) / sizeof(arr[0]);//计算一个数组的元素个数
       printf("%d\n", sz);//10
       return 0;
}

~按(二进制)位取反  把所有二进制中数字,1变成0,0变成1

整数在内存存储的是补码

一个整数的二进制表示有3种 

原码 

补码 

反码

负数的计算:

-1:
100000000000000000000000000000001(原码32位)
111111111111111111111111111111110(反码)
111111111111111111111111111111111(补码)

整数的计算:原码,反码,补码相同

整数a

0

二进制:

00000000000000000000000000000000

11111111111111111111111111111111 ~a (补码)

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
       int a = 0;
       printf("%d\n", ~a);//-1
    //~安位取反
       return 0;
}

++ :前置、后置++

int main()
{
       int a = 10;
       int b = ++a;//前置++   先++,后使用
       printf("%d\n", b);//11
       printf("%d\n", a);//11
       int c = 10;
       int d = c++;//后置++   先使用,后++
       printf("%d\n", c);//11
       printf("%d\n", d);//10
       return 0;
}

(类型):强制类型转换

int main()
{
       //强制类型转换
       int a = (int)3.14;
       printf("%d\n", a);
       return 0;
}

关系操作符

>

>=

<

<=

!= 用于测试“不相等”

==用于测试“相等”

逻辑操作符

&& 逻辑与

||     逻辑或

int main()
{
       int a = 3;
       int b = 5;
       int c = a && b;
       printf("%d\n", c);//1 真
       //if (a && b)
       //{
       //}
       int d = 0;
       int e = a && d;
       printf("%d\n", e);//0假
       int f = a || d;
       printf("%d\n", f);//1真
       int h = 0;
       int g = h && d;
       printf("%d\n", g);//0假
       return 0;
}

条件操作符(三目操作符)

exp1?exp2:exp3

(exp1,exp2,exp3为三个表达式(操作数))

exp1如果成立,exp2计算,整个表达式的结果是:exp2的结果

exp1如果不成立,exp3计算,整个表达式的结果是:exp3的结果

int main()
{
       int a = 0;
       int b = 3;
       int max = 0;
       /*if (a > b)
               max = a;
       else
               max = b;*/
       max=a > b ? a : b;
       printf("%d\n", max);
       return 0;
}

逗号表达式:逗号隔开的一串表达式

exp1,exp2,exp3,...expN

int main()
{
       //(2, 4 + 5, 6);
       int a = 0;
       int b = 3;
       int c = 5;
              //a=5        c=1        b=3
       int d = (a = b + 2, c = a - 4, b = c + 2);  //d=3
       //逗号表达式,是从左向右依次计算
       //整个表达式的结果是最后一个表达式的结果
       printf("%d\n", d);//3
       return 0;
}

下标引用、函数调用和结构成员

() [   ]   .   ->

下标引用操作符

int main()
{
       int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
       printf("%d", arr[5]);//[]下标引用操作符
       return 0;
}

函数调用操作符

int main()
{
       //调用函数的时候,函数名后面的()就是函数调用操作符
       printf("hello\n");
       printf("%d", 100);
       return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值