C语言初级阶段2——运算符、表达式和语句

C语言初级阶段2——运算符、表达式和语句

运算符

分类
算术运算符、自增自减运算符、关系运算符、逻辑运算符、条件运算符、赋值运算符、逗号运算符

算数运算符

1.定义:用于算术运算的特殊符号

2.基本使用(除了正负号是单目运算符以外其余都是双目运算符)

运算符含义举例结果优先级结合性
+正号运算符+aa的值2自右向左
-负号运算符-aa的算数负值2自右向左
*乘法运算符a*ba和b的乘积3自左向右
/除法运算符a/ba除以b的商3自左向右
%求余运算符a%ba除以b的余数3自左向右
+加法运算符a+ba和b的和4自左向右
-减法运算符a-ba和b的差4自左向右

自增自减运算符

1.定义

自增运算符是两个+连起来的符号,作用是使变量的值加一

自减运算符是两个-连起来的符号,作用是使变量的值减一

2.自增、自减运算符的使用

运算符含义结果优先级结合性
++i在使用i之前,先使i的值加1先执行i=i+1,再使用i的值2自右向左
–i在使用i之前,先使i的值减1先执行i=i-1,再使用i的值2自右向左
i++在使用i之后,先使I的值加1先使用i的值,再执行i=i+12自右向左
i–在使用i之后,先使I的值减1先使用i的值,再执行i=i-12自右向左

运算符如果混在一块就按照优先级进行运算

关系运算符

1.定义:关系运算符是比较两边表达式的大小关系,其运算过后的结果为逻辑值,要么关系表达式为真(逻辑真),运算结果为非零值,要么表达式为假(逻辑假),其结果为0。

2.关系运算符的基本使用

关系运算符含义优先级结合性
<小于6自左向右
<=小于或等于6自左向右
>大于6自左向右
>=大于或等于6自左向右
==等于7自左向右
!=不等于7自左向右

()强制转换运算符优先级14

#include<stdio.h>
int main()
{
int b = (double)10;//10.000000
int c='a';
printf("%d\n",c);
double d = (int)'a';//97.000000
printf("%lf\n",d);
return 0;
}

逻辑运算符

1.定义:有与(&&)、或(||)、非(!)三种。

逻辑运算符用于判断运算符两边的表达式的逻辑关系,一般用于连接多个条件表达式。

2.逻辑运算符的使用

运算符含义举例说明(不是真,就是假)优先级结合性
&&逻辑与(双目)a&&b如果a和b都是真,其结果为真11自左向右
||逻辑或(双目)a||b如果a和b有一个及以上为真,其结果为真12自左向右
!逻辑非(单目)!a如果a是真,则!a为假2自右向左

条件运算符(三目运算符)

1.定义:有两个运算符’?‘’:'组成,必须一起使用。

要求有三个操作对象,称为三目运算符。

它的优先级为13,结合性自右向左。

首先计算表达式1的值,如果表达式1的值为非0值,则该条件表达式的值为表达式2的值;如果表达式1的值为0,则该条件表达式的值为表达式3的值。

2.基本格式:表达式1?表达式2:表达式3

image-20221019184031320

#include<stdio.h>
int main()
{
int a = 10;
int b = 2;
int c = a > b ? a = 11 : b = 11;
printf("a=%d\nc=%d\n",a,c);
return 0;
}

位运算符

1.位运算符是针对数据的二进制进行运算的,其中包含左移“<<”、右移“>>”、按位非“~”、按位或"|“、按位与”&“、按位异或”^"这六种位运算,其只能对整型数据操作。

2.位运算符的基本使用

(1)左/右移运算符(“<<”、“>>”),基本格式:整数<<n、整数>>n,其用于将一个整数的二进制向左/向右移动n个二进制位。

(2)按位非运算符"",基本格式:整数,用于将一个整数的二进制各位取反,1变0,0变1.

(3)按位或’|‘和按位’&',基本格式:整数|整数、整数&整数,用于将两个整数的各位二进制相或/相与。

(4)按位异或’',基本格式:整数整数,用于将两个整数的二进制相异或,遵循相同为0,相异为1的规则。

//位运算符:二进制运算符
#include<stdio.h>
int main()
{
//左移:左移相当于乘以2的几次方,移几位就乘以2的几次方。
int a = 10;
printf("a=%d\n",a<<3);
//右移:右移相当于除以2的几次方,移几位就除以2的几次方。
int b = 4;
printf("b=%d\n",b>>1);
//按位非(取反):二进制1变0,0变1,二进制最高位表示符号位,最高位0表示正数1表示负数。
int c = 10;
printf("c=%d\n",~c);
/*正数的原码反码补码完全一样
原码:带有符号位的真值表示。ex:-1的原码是10000001
反码:除符号位以外,其余按位取反所得到的结果。
补码:在反码的基础上加1。
*/
//按位或:对应位置,有1则为1,否则为0。
int d = 5,e = 3;
printf("%d\n",d|e);
//按位与:对应位置,都为1,结果才为1,否则为0。
int f = 5,g = 3;
printf("%d\n",f&g);
//按位异或:对应位置,相同为0,不同为1。
int h = 5,i = 3;
printf("%d\n",h^i);
return 0;
}

赋值运算符

1.定义:赋值符号’='就是赋值运算符,用于给变量赋值,和算术运算符组合可以构成复合赋值运算符。

2.赋值运算符的基本使用

赋值运算符优先级结合性
=14自右向左
+=14自右向左
-=14自右向左
*=14自右向左
/=14自右向左
%=14自右向左

a += b ==> b=b+a;

a -= b ==> b=b-a

a = b ==> b=ba

a /= b ==> b=b/a

a %= b ==> b=b%a

逗号运算符

定义:逗号运算符就是一个逗号’,',也叫顺序求值运算符,起到分隔的作用。它的优先级15级,结合方向是自左向右。

#include<stdio.h>
int main()
{
int a = (1,2,3,4,5,6,7,8,9);
printf("a=%d\n",a);//输出的值为9,输出结果为最后一个值
return 0;
}

求字节运算符

sizeof():求类型大小,自右向左,优先级14

#include<stdio.h>
int main()
{
printf("%d\n",sizeof(10));
printf("%d\n",sizeof(float));
printf("%d\n",sizeof(char));
return 0;
}

表达式

1.表达式的含义及组成:用运算符和括号将运算对象(也叫操作数)连接起来的、符合C语言语法规则、用于相关运算的式子,称为C语言表达式。运算对象包括常量、变量、函数等。

操作数:一个运算符要用到几个变量运算,比如需要两个数需要进行计算,那么就叫做双目运算符。

2.示例:例如一个合法的算数表达式:a*b/c-1.5+‘a’

3.执行规则:在计算表达式的值时,应先按运算符的优先级别顺序执行,例如先乘除后加减。存在同一级别的运算符做运算时,则需要看运算符的结合性。(同一级别的运算符结合性是一致的,可以用小括号改变运算的优先级)

语句

1.含义及其构成:C语言语句一般是由表达式和语句结束符’;'组成,是构成C语言函数的基本单位。

2.类型

(1)流程控制语句

​ ①if()…else…

​ ②for()…

​ ③while()…

​ ④do…while()

​ ⑤continue

​ ⑥break

​ ⑦switch

​ ⑧return

​ ⑨goto

(2)函数调用语句:用于调用函数

​ 如:printf();

(3)表达式语句:用于进行相关的运算。

​ 如:由算数表达式组成的运算语句a*b/c-1.5+‘a’;

(4)空语句:只有一个语句结束符’;'分号的语句,什么都不做。

​ 如:;

(5)复合语句:用大括号括起来的语句块,是多条语句的组合,方便流程语句控制多条语句。

​ 如:{

​ i=3;

​ j=4;

​ }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值