C语言笔记——2.运算符和表达式

二、运算符和表达式

1. 算术运算符

+,-,*,/,%

2. 自增自减运算符
运算符含义结果优先级结合性
++i先自增,再参与运算先i=i+1后,再使用i的值2自右至左
i++先参与运算,再自增先使用i值,再i=i+12自右至左
–i先自减,再参与运算先i=i-1后,再使用i的值2自右至左
i–先参与运算,再自减先使用i值,再i=i-12自右至左
int a = 10;
int b;
b = a++;  //先b=a,再a=a+1.  结果是b=10,a=11.

int c = 10;
int d;
d = ++c; //先c=c+1,再d=c。  结果是d=11, c=11.
3. 运算符优先级总表

[点击跳转](运算符优先级_百度百科 (baidu.com))

4. 位运算符和逻辑运算符区别
位运算符(二进制运算符)含义逻辑运算符含义
<<左移逻辑非
>>右移&&逻辑与
~按位非||逻辑或
|按位或
&按位与
^按位异或
//注:首先明确,计算机中数据以补码形式存在
//1.左移:相当于*2的n次方,移几位就*2的几次方
//2.右移:相当于/2的n次方,移几位就/2的几次方
int a=10;
printf("a = %d\n",a<<3);//0000 1010,左移后0101 0000,结果是80
//3.按位非(取反):~,二进制1->0,0>1,二进制最高位为符号位,0正数,1负数。见下图1
printf("c=%d",~a); //-11.10:0000 1010, 补码:0000 1010,取反:1111 0101,反码:1000 1010,补码:1000 1011=-11
int b=-7;
printf(~b);//-7:1000 0111,补码:1111 1001,取反:0000 0110=6

//按位或:|,数全为正,或全为负
//按位异或:^,可以有正有负

在这里插入图片描述

1.所有正整数的按位取反是其本身+1的负数
2.所有负整数的按位取反是其本身+1的绝对值
3.零的按位取反是-1 (0在数学界既不是 正数也不是负数)

5. 逗号运算符

也称为 顺序求值运算符,起到分隔作用。优先级=15,结合方向自左到右。例如:int a,b,c

int a=(1,2,3,4,5);
printf(a); //5
6. 条件运算符

表达式1?表达式2:表达式3

表达式1为真,执行表达式2,否则执行表达式3

printf(1>2?1:2); //2
//注意括号,否则报错:error: lvalue required as left operand of assignment,看字面意思是:赋值操作的左操作数必须使用左值。条件表达式的优先级顺序
    int a=1;
    int b=2;
    (a>b)? (a=11): (b=12); //必须加括号
    printf("%d",b);
7. sizeof运算符

sizeof(); 求内存大小,即字节数大小

printf("%d\n",sizeof(float));  //4字节
8.表达式

用运算符和括号将运算对象(也叫操作数)连接起来的、符合C语言语法规则、用于相关运算的式子,称为C语言表达式。

**1.运算对象包括:**常量、变量、函数等。

**2.执行规则:**按照运算符优先级顺序执行,同一级别看运算符的结合性,结合性一致的,用小括号改变运算优先级。

3.不同数据类型之间的混合运算

(1)float+double,全部转化为double类型,再进行计算;

(2)int+float 或 int+double ,先int转化为float 或double,再进行计算;

(3)char+int, 每一个char型字符都有相应的ASCII码数值对应,所以两者是可以互相转换的。计算时,一般把字符型转换成整形,再进行运算。

9.C语句

一般是由表达式和语句结束符;号组成,是构成C语言的基本单位。

C语言常见语句:

流程控制语句函数调用语句表达式语句空语句复合语句
if…else…用于函数调用进行运算只有一个结束符;什么都不做用{}括起来的语句块,多条语句的组合,方便流程语句控制多条语句
for()…printf();a*b/c+a-e{i=3;j=4;}
while()…
do…while()…
continue
break
switch
return
goto
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼才的凝视

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值