您的位置:首页 > 编程语言 > C语言/C++

C语言 操作符和表达式

2016-07-15 18:36 260 查看
0714

一、运算符和表达式简介

运算符(操作符):能够实现某种功能的符号。

表达式:由操作符、操作数组成的式子。(单独一个变量也可以称为一个表达式)大部分表达式都是有值得。

二、运算符分类

操作符:算数运算符、逻辑运算符、关系运算符、赋值运算符、自增自减运算符、复合运算符。

操作符分类:根据操作数的个数分为三种:单目运算符(一元运算符)、双目运算符(二元运算符)、三目运算符(?:)条件运算符。

算术运算符:+-*/%(操作数的个数都是两个)/注意:两个整数相除得到的依旧是整数;除数不能为0。%注意:两个操作数必须是整数。eg:将任意给定的数据n转换为0-m范围的数据。 0%m:01%m:1
……(m-1)%m:(m-1)

eg:将给定的数据n转换为i-j范围的数据。相当于0-(j-i)范围+i

注意使用/与%的结合使用。例如:通过5678分别得到5,6,7,8。5678/1000:5; 5678%1000/100;等。

逻辑运算符:&&、||、! 逻辑数据:真、假。0表示假;一切非0数据表示真。

计算逻辑与表达式(&&)时,如果第一个操作数为假,则不再处理第二个操作数,整个表达式的值为假。

计算逻辑或表达式(||)时,如果第一个操作数为真,则不再处理第二个操作数,整个表达式的值为真。

!取非

关系运算符:==、<、>、<=、>=、!=。

自增运算符++(使操作数的值加1)、自减运算符—-(使操作数的值减1);

前置++、后置++:前置++表达式和操作数都加1;后置++表达式不变,操作数加1

前置—-、后置—-:前置—-表达式和操作数都减1;后置—-表达式不变,操作数减1

例子:

{
int a=1;
int b=1;
(a—-)&&(b++);//a=0,b=2

}

{
int a=1;
int b=2;
(—-a)&&(b++);//a=0,b=2

}

赋值运算符:=(双目运算符)操作数=表达式;

a=b; a:左值;
b:右值;

赋值表达式的值即为左值。左值必须为变量。

复合运算符:+=、-=、*=、/=

sizeof(操作数);作用:求字节数。操作数类型:数据类型、变量、常量。输出格式为长整型:{“%lu”}

三目运算符:条件运算符:a?i:j;如果表达式a为真则结果为i,否则结果为j;

三、运算符优先级

运算符的优先级和结合性。

优先级:单目运算符>算术运算符>关系运算符>逻辑运算符>条件运算符>赋值运算符(复合运算符)

四、类型转换

显示和隐式类型转换

显示类型转换:强制类型转换

格式:在待转数据前加上数据类型。

比如:int a; double b=3.14159; a=(int)b;//强制类型转换后,b的数据类型不会变化。变量的类型只与声明有关。强制类型转化的目的在于将等号右侧表达式的结果转换数据类型。

隐式类型转换:

如果在一个表达式中,既有char,又有int,那么编译器会将char类型数据隐式转换为int。ASCII码:’a’=97,’A’=65;’a’+10=107

如果在一个表达式中,既有bool,又有int,那么编译器会将bool类型数据隐式转换为int。true->1;false->0

低精度会被隐式转换为高精度,float->double.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: