C语言学习003-运算和表达式

130 阅读2分钟

一、算术运算:
正号(+);负号(-);加(+);减(-);乘(*);除(/);求余(%);自增(++);自减(--)

二、赋值运算:
赋值(=);加等于(+=);减等于(-=);乘等于(*=);除等于(/*);求余等于(%=)

三、比较运算:
等于(==);不等于(!=);大于(>);小于(<);大于等于(>=);小于等于(<=)

四、逻辑运算:
非(!);与(&&);或(||);

五、运算符的优先级:从上到下从到到低排列:
除了2,13和14种的结合方向是从右向左,其他的都是从左向右结合。

优先级名 称符号
1、
数组下标:[]
圆括号:()
成员选择(对象):.
成员选择(指针):->
2、
负号:-
按位取反~
自增:++
自减--
取指针的值运算*
取变量地址运算&
逻辑非
(类型)转换(类型)数据
长度运算sizeof
3、
乘法*
除法/
求余%
4、
加法+
减法-
5、
左移<<
右移>>
6、
大于>
大于等于>=
小于<
小于等于<=
7、
等于==
不等于!=
8、按位与&
9、按位异或^
10、按位或|
11、逻辑与&&
12、逻辑或||
13、条件运算符?: 三目运算符
14、
赋值=
除后赋值/=
乘后赋值/*=
求余赋值%=
加后赋值+=
减后赋值-=
左移赋值<<=
右移赋值>>=
按位与后赋值&=
按位异或后赋值^=
按位或后赋值|=
15、逗号运算符,

六、类型转换: 有隐式转换和强制转换
1、隐式转行:结果自动转换为相应的类型

2、强制转换: (类型) 表达式

七、流程控制
if(){ }
if(){ }else{ }
if(){ }else if(){ }

三目: 逻辑运算 ? true时候的值 : false时候的值

switch(整型变量) { case : 语句;break; default: 语句;break; }

循环语句:

while(){ }

do{ }while();

for(int a = 0;i<10;i++){ }

跳转语句:
break:跳出当前循环
continue:结束当前循环的本次循环,继续执行下一次循环
goto 标志 调到标志的代码(少用)

End: 代码;

八、数组和字符串
定义数组:int 数组名[长度] = {初始化数据}

数组内的类型都式样的:要想知道数组的长度: 可以这么写:sizeof(数组名) / sizeof(第一个元素)

定义一维数组时候可以:
指定长度的时候同时初始化
指定长度不初始化
不指定长度初始化

二维数组中,定义的时候,内部数组的长度必须指定,不管有没有初始化。
不初始化的时候,两个参数都必须要的,初始化的时候第一个参数可以不指定。

初始化的时候可以分组初始化,但是也可以按照一维数组初始化。这种情况下,自动按照第二个参数长度去依次初始化每个二维数组,不够的情况,就是默认值:
比如[2][3] = {1,2,3,4} 初始化后就是{{1,2,3},{4,0,0}}

多维数组:了解就行

字符串:前面已经了解过。