C-运算符

运算符

运算符优先级

 

优先级运算符运算j结合关系例子
1 + 单目不变 自右向左a*+b
1 - 单目取负 自右向左a*-b
2 * 乘 自左向右a*b
2 / 除 自左向右a/b
2 % 取余 自左向右a%b
3 + 加 自左向右a+b
3 - 减 自左向右a-b
4 = 赋值 自右向左a=b

注意

禁止使用嵌入式赋值,不利于阅读

int a = 1;
int b;
int c = 1+(b=a);

 

复合运算符

1)+= -= *= /= %=

num += 1;等价于 num = num + 1;

复合运算符把复合运算符右边的表达式计算完再后左边的变量做个结合

 

#include <stdio.h>

int main(void)
{
    int num = 3;
    num += 1 + 2;
    printf("%d\n", num); //6
}

 

2)++和--

a.++和--为单目运算符,操作的算子必须为变量

b.a++为a加1之前的指,++a为a加1之后的值,同理--

#include <stdio.h>

int main(void)
{
    int a = 1;

    printf("%d\n", a++); //1
    printf("%d\n", a); //2
    printf("%d\n", ++a); //3
}

 

注意

不要将其组合到表达式中,如a = b+=c++-d+--e/-f

 

sizeof

是一个运算符,返回某个类型或某个变量所占据的字节数

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     int num = 1;
 6     printf("sizeof(num) = %d\n", sizeof(num));
 7     printf("sizeof(num) = %d\n", sizeof(num++));
 8     printf("num=%d\n", num); //1
 9     printf("sizeof(num) = %d\n", sizeof(num+1.0));
10     printf("num=%d\n", num); //1
11     return 0;
12 }

注意:

1)sizeof是静态运算符,它的结果在编译期就已经确定

2)不要在sizeof中做运算,因为然并卵,它只会看它的结果是什么类型的,并不会真正执行运算

 

 

表达式

一系列运算符(比如+-*/)和算子(参与运算的值,比如常量,变量或函数的返回值)的组合,用来计算一个值

int a = 1;
a = a + 1;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值