当前位置:文档之家› 单片机C语言必备-运算符与关键字集

单片机C语言必备-运算符与关键字集

单片机C语言必备-运算符与关键字集
单片机C语言必备-运算符与关键字集

单片机C语言的必备基础

对单片机C语言来说,掌握以下几点是必须的,尤其对初学者来讲,更是要熟记的:一、单片机C语言的运算符和表达式

1.1运算符的种类、优先级和结合性

C语言中运算符和表达式数量之多,在高级语言中是少见的。正是丰富的运算符和表达式使c语言功能十分完善。这也是c语言的主要特点之一。

C语言的运算符不仅具有不同的优先级,而且还有一个特点,就是它的结合性。在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算。这种结合性是其它高级语言的运算符所没有的,因此也增加了c语言的复杂性。

1.2运算符的种类

C语言的运算符可分为以下几类:

1.算术运算符

用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。

2.关系运算符

用于比较运算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。

3.逻辑运算符

用于逻辑运算。包括与(&&)、或(||)、非(!)三种。

4.位操作运算符

参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。

5.赋值运算符

用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。

6.条件运算符

这是一个三目运算符,用于条件求值(?:)。

7.逗号运算符

用于把若干表达式组合成一个表达式(,)。

8.指针运算符

用于取内容(*)和取地址(&)二种运算。

9.求字节数运算符

用于计算数据类型所占的字节数(sizeof)。

10.特殊运算符

有括号(),下标[],成员(→,.)等几种。

1.3优先级和结合性

C语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。

C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z则y应先与“-”号结合,执行x-y运算,然后再执行+z的运算。这种自左至右的结合方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。最典型的右结合性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先

执行y=z再执行x=(y=z)运算。 c语言运算符中有不少为右结合性,应注意区别,以避免理解错误。

1.4 算术运算符和算术表达式基本的算术运算符

1.加法运算符“+”加法运算符为双目运算符,即应有两个量参与加法运算。如a+b,4+8等。具有右结合性。

2.减法运算符“-”减法运算符为双目运算符。但“-”也可作负值运算符,此时为单目运算,如-x,-5等具有左结合性。

3.乘法运算符“*”双目运算,具有左结合性。

4.除法运算符“/”双目运算具有左结合性。参与运算量均为整型时,结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。

void main(){

printf(\"\\n\\n%d,%d\\n\",20/7,-20/7);

printf(\"%f,%f\\n\",20.0/7,-20.0/7);

}

双目运算具有左结合性。参与运算量均为整型时,结果也为整型,舍去小数。如果运算量中有一个是实型,则结果为双精度实型。 printf(\"\\n\\n%d,%d\\n\",20/7,-20/7);

printf(\"%f,%f\\n\",20.0/7,-20.0/7);

本例中,20/7,-20/7的结果均为整型,小数全部舍去。而20.0/7和-20.0/7由于有实数参与运算,因此结果也为实型。

5.求余运算符(模运算符)“%”双目运算,具有左结合性。要求参与运算的量均为整型。求余运算的结果等于两数相除后的余数。

void main(){

printf(\"%d\\n\",100%3);

}

双目运算,具有左结合性。求余运算符%要求参与运算的量均为整型。本例输出100除以3所得的余数1。

自增1,自减1运算符

自增1运算符记为“++”,其功能是使变量的值自增1。自减1运算符记为“--”,其功能是使变量值自减1。自增1,自减1运算符均为单目运算,都具有右结合性。可有以下几种形式: ++i i 自增1后再参与其它运算。--i i自减1后再参与其它运算。

i++i参与运算后,i的值再自增1。

i--i参与运算后,i的值再自减1。

在理解和使用上容易出错的是i++和i--。特别是当它们出在较复杂的表达式或语句中时,常常难于弄清,因此应仔细分析。

void main(){

int i=8;

printf(\"%d\\n\",++i);

printf(\"%d\\n\",--i);

printf(\"%d\\n\",i++);

printf(\"%d\\n\",i--);

printf(\"%d\\n\",-i++);

printf(\"%d\\n\",-i--);

} i<--8

i<--i+1

i<--i-1

i<--i+1

i<--i-1

i<--i+1

i<--i-1 int i=8;

printf(\"%d\\n\",++i);

printf(\"%d\\n\",--i);

printf(\"%d\\n\",i++);

printf(\"%d\\n\",i--);

printf(\"%d\\n\",-i++);

printf(\"%d\\n\",-i--);

i的初值为8

第2行i加1后输出故为9;

第3行减1后输出故为8;

第4行输出i为8之后再加1(为9);

第5行输出i为9之后再减1(为8);

第6行输出-8之后再加1(为9);

第7行输出-9之后再减1(为8)

void main(){

int i=5,j=5,p,q;

p=(i++)+(i++)+(i++);

q=(++j)+(++j)+(++j);

printf(\"%d,%d,%d,%d\",p,q,i,j);

}

i<--5,j<--5,p<--0,q<--0

i+i+i--->p,i+1-->i,i+1-->i,i+1-->i

j+1->j,j+1->j,j+1->j,j+j+j->q int i=5,j=5,p,q;

p=(i++)+(i++)+(i++);

q=(++j)+(++j)+(++j);

这个程序中,对p=(i++)+(i++)+(i++)应理解为三个i相加,故p值为15。然后i再自增1三次相当于加3故i的最后值为8。而对于q的值则不然,q=(++j)+(++j)+(++j)应理解为q先自增1,再参与运算,由于q自增1三次后值为8,三个8相加的和为24,j的最后值仍为8。算术表达式表达式是由常量、变量、函数和运算符组合起来的式子。一个表达式有一个值及其类型,它们等于计算表达式所得结果的值和类型。表达式求值按运算符的优先级和结合性规定的顺序进行。单个的常量、变量、函数可以看作是表达式的特例。

二、单片机C语言常用关键字

以下是常用的关键字,是学好C语言的必备基础:

关键字用途说明

auto 存储种类说明用以说明局部变量,缺省值为此

break 程序语句退出最内层循环

case 程序语句Switch语句中的选择项

char 数据类型说明单字节整型数或字符型数据

const 存储类型说明在程序执行过程中不可更改的常量值

continue 程序语句转向下一次循环

default 程序语句Switch语句中的失败选择项

do 程序语句构成do..while循环结构

double 数据类型说明双精度浮点数

else 程序语句构成if..else选择结构

enum 数据类型说明枚举

extern 存储种类说明在其他程序模块中说明了的全局变量flost 数据类型说明单精度浮点数

for 程序语句构成for循环结构

goto 程序语句构成goto转移结构

if 程序语句构成if..else选择结构

int 数据类型说明基本整型数

long 数据类型说明长整型数

register 存储种类说明使用CPU内部寄存的变量

return 程序语句函数返回

short 数据类型说明短整型数

signed 数据类型说明有符号数,二进制数据的最高位为符号位sizeof 运算符计算表达式或数据类型的字节数

static 存储种类说明静态变量

struct 数据类型说明结构类型数据

swicth 程序语句构成switch选择结构

typedef 数据类型说明重新进行数据类型定义

union 数据类型说明联合类型数据

unsigned 数据类型说明无符号数数据

void 数据类型说明无类型数据

volatile 数据类型说明该变量在程序执行中可被隐含地改变while 程序语句构成while和do..while循环结构

附表1-1ANSIC标准关键字

关键字用途说明

bit 位标量声明声明一个位标量或位类型的函数

sbit 位标量声明声明一个可位寻址变量

Sfr 特殊功能寄存器声明声明一个特殊功能寄存器

Sfr16 特殊功能寄存器声明声明一个16位的特殊功能寄存器

data 存储器类型说明直接寻址的内部数据存储器

bdata 存储器类型说明可位寻址的内部数据存储器

idata 存储器类型说明间接寻址的内部数据存储器

pdata 存储器类型说明分页寻址的外部数据存储器

xdata 存储器类型说明外部数据存储器

code 存储器类型说明程序存储器

interrupt 中断函数说明定义一个中断函数

reentrant 再入函数说明定义一个再入函数

using 寄存器组定义定义芯片的工作寄存器

附录二 AT89C51特殊功能寄存器列表(适用于同一架构的芯片)

带*号的特殊功能寄存器都是可以位寻址的寄存器 符 号 地 址 注 释 *ACC E0H 累加器 *B F0H 乘法寄存器 *PSW D0H 程序状态字 SP 81H 堆栈指针

DPL 82H 数据存储器指针低8位 DPH 83H 数据存储器指针高8位 *IE A8H 中断允许控制器 *IP D8H 中断优先控制器

*P0 80H 端口0 *P1 90H 端口1 *P2 A0H 端口2 *P3 B0H 端口3

PCON 87H 电源控制及波特率选择

*SCON 98H 串行口控制器 SBUF 99H 串行数据缓冲器 *TCON 88H 定时器控制 TMOD 89H 定时器方式选择 TL0 8AH 定时器0低8位 TL1 8BH 定时器1低8位 TH0 8CH 定时器0低8位 TH1

8DH

定时器1高8位

附录三 运算符优先级和结合性

级 别 类 别 名 称 运算符 结合性 1

强制转换、数组、 结构、联合 强制类型转换

( ) 右结合

下标

[ ] 存取结构或联合成员

->或. 2 逻 辑 逻辑非 ! 左结合

字 位 按位取反 ~ 增 量 加一 ++ 减

减一 -- 指 针 取地址 & 取内容 * 算 术 单目减 - 长度计算

长度计算 sizeof 3 算 术 乘 * 右结合

除 / 取模 % 4

算术和指针运算

加 + 减

-

5 字 位

左移 << 右移 >> 6

关系

大于等于 >= 大于 > 小于等于 <= 小于 < 7 恒等于 == 不等于 != 8 字 位 按位与 & 9 按位异或 ^ 10 按位或 | 11 逻 辑 逻辑与 && 左结合

12 逻辑或 || 13 条 件 条件运算 ?: 14 赋 值 赋值 = 复合赋值 Op= 15

逗 号

逗号运算

,

右结合

C语言中的运算符总结解读

C语言中的运算符总结 C语言中的操作符:算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用、函数调用和结构成员。 1.算术操作符:+ - * / % 1除了% 操作符之外,其他的几个操作符均可以作用于整数和浮点数。 2对于/ 操作符,如果两个操作数都为整数,执行整数除法;而只要有浮点数执行的就是浮点数除法。 3% 操作符的两个操作数必须为整数,返回的是整除之后的余数。 2.移位操作符: << 左移操作符和 >> 右移操作符(针对二进制位、是对整数的操作 1左移操作符移位规则:左边丢弃、右边补0。 2右移操作符移位规则:(1算术移位:左边补符号位,右边丢弃。 (2逻辑移位:左边补0,右边丢弃。 注:对于移位运算符,不能移动负数位,这个是标准未定义的。 3.位操作符:& 按位与 | 按位或 ^ 按位异或(操作数都必须是整数,是针对二进制数的操作 4.赋值操作符:= 可以重新为变量赋值(赋值操作符是可以连续使用的,从右向左执行,不建议使用。 5.复合赋值符:+= = *= /= %= >>= <<= &= |= ^= 6.单目操作符:! 逻辑反操作(真---假

- 负值+ 正值 & 取地址从内存中取地址,不能从寄存器register 中取址。 sizeof 操作数的类型长度(以字节为单位 ~ 一个数的二进制按位取反 -- 前置、后置-- ++ 前置、后置++ (1前置++和--:先自增后使用,表达式的值是自增之后的值。 先自减后使用,表达式的值是自减之后的值。 (2后置++和--:先使用再自加。 先使用再自减。 * 间接访问操作符(解引用操作符 (类型强制类型转换 7.关系操作符:> >= < <= != 不相等 == 相等 注:== 相等 = 赋值,二者易混淆,需注意。 8.逻辑操作符:&& 逻辑与|| 逻辑或 注:逻辑与、逻辑或是判断真假的,按位与、按位或是对二进制数进行操作的。 对逻辑与操作,只要有一个为假,便不必再进行后边的计算;对逻辑或操作,只要有一个为真,便不必再进行后边的操作。 9.条件操作符(三目操作符:exp1 ? exp2 : exp3 先计算表达式1 的值,如果表达式1 为真,整个表达式的值就是表达式 2 的值,如果为假,整个表达式的值就是表达式 3 的值。

C语言运算符大全 (2)

C语言运算符大全C语言的内部运算符很丰富,运算符是告诉编译程序执行特定算术或逻辑操作的符号。C语言有三大运算符:算术、关系与逻辑、位操作。另外,C还有一些特殊的运算符,用于完成一些特殊的任务。 表2-5列出了C语言中允许的算术运算符。在C语言中,运算符“+”、“-”、“*”和“/”的用法与大多数计算机语言的相同,几乎可用于所有C语言内定义的数据类型。当“/”被用于整数或字符时,结果取整。例如,在整数除法中,10/3=3。 一元减法的实际效果等于用-1乘单个操作数,即任何数值前放置减号将改变其符号。模运算符“%”在C 语言中也同它在其它语言中的用法相同。切记,模运算取整数除法的余数,所以“%”不能用于float和double类型。 最后一行打印一个0和一个1,因为1/2整除时为0,余数为1,故1%2取余数1。 C语言中有两个很有用的运算符,通常在其它计算机语言中是找不到它们的—自增和自减运算符,++和--。运算符“++”是操作数加1,而“--”是操作数减1,换句话说:x=x+1;同++x;x=x-1;同--x; 自增和自减运算符可用在操作数之前,也可放在其后,例如:x=x+1;可写成++x;或x++;但在表达式中这两种用法是有区别的。自增或自减运算符在操作数之前,C语言在引用操作数之前就先执行加1或减1 操作;运算符在操作数之后,C语言就先引用操作数的值,而后再进行加1或减1操作。请看下例: x=10; ;y=++x;

此时,y=11。如果程序改为: x=10;y=x++; 则y=10。在这两种情况下,x都被置为11,但区别在于设置的时刻,这种对自增和自减发生时刻的控制是非常有用的。在大多数C编译程序中,为自增和自减操作生成的程序代码比等价的赋值语句生成的代码 要快得多,所以尽可能采用加1或减1运算符是一种好的选择。 。下面是算术运算符的优先级: :最高++、- -- -(一元减) *、/、%最低+、-编译程序对同级运算符按从左到右的顺序进行计算。当然,括号可改变计算顺序。C语言 处理括号的方法与几乎所有的计算机语言相同:强迫某个运算或某组运算的优先级升高。 关系运算符中的“关系”二字指的是一个值与另一个值之间的关系,逻辑运算符中的“逻辑”二字指的是连接关系的方式。因为关系和逻辑运算符常在一起使用,所以将它们放在一起讨论。关系和逻辑运算符概念中的关键是True(真)和Flase(假)。C语言中,非0为True,0为Flase。使用关系或逻辑运算符的表达式对Flase和Ture分别返回值0或1(见表2-6)。 表2-6给出于关系和逻辑运算符,下面用1和0给出逻辑真值表。关系和逻辑运算符的优先级比算术运算符低,即像表达式10>1+12的计算可以假定是对表达式10>(1+12)的计算,当然,该表达式的结果为Flase。在一个表达式中允许运算的组合。例如: 10>5&&!(10<9)||3<=4 这一表达式的结果为True。

C语言中条件运算符的语法为

条件运算符的语法为: (条件表达式)?(条件为真时的表达式):(条件为假时的表达式) 例如: x=ay?"greater than":x==y?"equal to":"less than" 它等价于: (x>y)?"greater than":((x==y)?"equal to":"less than") 当x>y时,值为"greater than",x==y时,值为"equal to",否则,值为"less than"。条件运算符的嵌套可读性不够好。 在一个条件运算符的表达式中,如果后面两个表达式的值类型相同,均为左值,则该条件运算符表达式的值为左值表达式。例如: int x=5; long a,b; (x?a:b)=1;//ok:因为a和b都是左值 (x?x:a)=2;//error:x和a不同类型。编译器将其解释为(1ong)x和a (x==271:a)=3;//error:1非左值 "(x?a:b)=1"表示当x为0时,b=1,否则a=1。这里的括号是必须的,否则将被看作x?a:(b=1)。"(x?x:a)=2”中,尽管x是左值,a也是左值,但x与a不同类型,条件运算符要对其进行操作数的隐式转换,使之成为相同的类型。任何被转换的变量都不是左值。 ->在C中,条件运算符是不能作左值的,所以"(x?a:b)=1;"将通不过编译。 getchar 函数名: getchar 功能: 从stdio流中读字符 用法: int getchar(void); 注解:

c语言34种运算符

C语言运算符 算术运算符 TAG:运算符,数据类型 TEXT:算术运算符对数值进行算术运算,其中:加、减、乘、除、求余运算是双目运算。其结果可以是整数、单精度实数和双精度实数。自增、自减运算是单目运算,其操作对象只能使整型变量,不能是常量或表达式等其他形式。 REF:.TXT,+运算符.txt,-运算符.txt,*运算符.txt,/运算 符.txt,%运算符,++运算符,--运算符 加+ TAG:算术运算符,运算符,数据类型 TEXT:双目运算符,算数加法。单目运算符,表示正数。REF:.TXT,算数运算符.txt 减- TAG:算术运算符,运算符,数据类型 TEXT:双目运算符,算数减法。单目运算符,表示负数。REF:.TXT,算数运算符.txt 乘* TAG:算术运算符,运算符,数据类型 TEXT:*,双目运算符,算数乘法。 REF:.TXT,算数运算符.txt

除/ TAG:算术运算符,运算符,数据类型 TEXT:/,双目运算符,算数除法;如果两个参与运算的数是整数,表示整除,舍去小数部分。 如5.0/2等于2.5,而5/2等于2。 REF:.TXT,算数运算符.txt 取余% TAG:算术运算符,运算符,数据类型 TEXT:/,双目运算符,算数除法;如果两个参与运算的数是整数,表示整除,舍去小数部分。 如5.0/2等于2.5,而5/2等于2。 REF:.TXT,算数运算符.txt 自加++ TAG:算术运算符,运算符,数据类型 TEXT:单目运算符,针对整数运算,可以放在运算数的两侧,表示运算数增1。 REF:.TXT,算数运算符.txt 自减-- TAG:算术运算符,运算符,数据类型 TEXT:单目运算符,针对整数运算,可以放在运算数的两侧,表示运算数减1。

C语言运算符大全

C语言运算符大全 C语言的内部运算符很丰富,运算符是告诉编译程序执行特定算术或逻辑操作的符号。C语言有三大运算符:算术、关系与逻辑、位操作。另外,C还有一些特殊的运算符,用于完成一些特殊的任务。 2.6.1算术运算符 表2-5列出了C语言中允许的算术运算符。在C语言中,运算符“+”、“-”、“*”和“/”的用法与大多数计算机语言的相同,几乎可用于所有C语言内定义的数据类型。当“/”被用于整数或字符时,结果取整。例如,在整数除法中,10/3=3。 一元减法的实际效果等于用-1乘单个操作数,即任何数值前放置减号将改变其符号。模运算符“%”在C语言中也同它在其它语言中的用法相同。切记,模运算取整数除法的余数,所以“%”不能用于float和double类型。 最后一行打印一个0和一个1,因为1/2整除时为0,余数为1,故1%2取余数1。 2.6.2自增和自减 C语言中有两个很有用的运算符,通常在其它计算机语言中是找不到它们的—自增和自减运算符,++和--。运算符“++”是操作数加1,而“--”是操作数减1,换句话说:x=x+1;同++x;x=x-1;同--x; 自增和自减运算符可用在操作数之前,也可放在其后,例如:x=x+1;可写成++x;或x++;但在表达式中这两种用法是有区别的。自增或自减运算符在操作数之前,C语言在引用操作数之前就先执行加1或减1操作;运算符在操作数之后,C语言就先引用操作数的值,而后再进行加1或减1操作。请看下例: x=10; ;y=++x; 此时,y=11。如果程序改为: x=10;y=x++; 则y=10。在这两种情况下,x都被置为11,但区别在于设置的时刻,这种对自增和自减发生时刻的控制是非常有用的。在大多数C编译程序中,为自增和自减操作生成的程序代码比等价的赋值语句生成的代码 要快得多,所以尽可能采用加1或减1运算符是一种好的选择。 。下面是算术运算符的优先级: :最高++、- -- -(一元减) *、/、%最低+、-编译程序对同级运算符按从左到右的顺序进行计算。当然,括号可改变计算顺序。C语言 处理括号的方法与几乎所有的计算机语言相同:强迫某个运算或某组运算的优先级升高。 2.6.3关系和逻辑运算符 关系运算符中的“关系”二字指的是一个值与另一个值之间的关系,逻辑运算符中的“逻辑”二字指的是连接关系的方式。因为关系和逻辑运算符常在一起使用,所以将它们放在一起讨论。关系和逻辑运算符概念中的关键是True(真)和Flase(假)。C语言中,非0为True,0为Flase。使用关系或逻辑运算符的表达式对Flase和Ture分别返回值0或1(见表2-6)。

C语言运算符的结合性详细分析

C语言运算符的结合性分析 吴琼( 鄂州大学计算机系, 湖北鄂州) C 语言与其他高级语言相比, 一个显著的特点就是其运算符特别丰富, 共有34 种运算符。C 语言将这34 种运算符规定了不同的优先级别和结合性。优先级是用来标识运算符在表达式中的运算顺序的, 在求解表达式的值的时候, 总是先按运算符的优先次序由高到低进行操作, 可是, 当一个运算对象两侧的运算符优先级别相同时, 则按运算符的结合性来确定表达式的运算顺序。 运算符的结合性指同一优先级的运算符在表达式中操作的组织方向, 即: 当一个运算对象两侧运算符的优先级别相同时, 运算对象与运算符的结合顺序, C 语言规定了各种运算符的结合方向( 结合性) 。大多数运算符结合方向是“自左至右”, 即: 先左后右, 例如a- b+c, b 两侧有- 和+两种运算符的优先级相同, 按先左后右结合方向, b 先与减号结合, 执行a- b 的运算, 再执行加c 的运算。除了自左至右的结合性外, C 语言有三类运算符参与运算的结合方向是从右至左。即: 单目运算符, 条件运算符, 以及赋值运算符。关于结合性的概念在其他高级语言中是没有的, 这是C语言的特点之一,特别是从右至左结合性容易出错, 下面通过几个具体的运算符来剖析C 语言运算符的结合性。 若a 是一个变量, 则++a 或a++和- - a 或a- - 分别称为前置加或后置加运算和前置减或后置减运算, 且++a 或a++等价于a=a+1, - - a 或a- - 等价于a=a- 1, 即都是使该变量的值增加1 或减少1。由此可知, 对一个变量实行前置或后置运算, 其运算结构是相同的, 但当它们与其他运算结合在一个表达式中时, 其运算值就不同了。前置运算是变量的值先加1 或减1, 然后将改变后的变量值参与其他运算, 如x=5; y=8; c=++x*y; 运算后, c 的值是48,x 的值是6,y 的值是8。而后置运算是变量的值先参与有关运算, 然后将变量本身的值加1 减1, 即参加运算的是该变量变化前的值。如x=5; y=8; c=x++*y;运算后, c 的值是40,x 的值是6, y 的值是8。值得注意的是, 前置、后置运算只能用于变量, 不能用于常量和表达式, 且结合方向是从右至左。如当i=6 时, 求- i++的值和i 的值。由于“- ”(负号) “++”为同一个优先级, 故应理解为- (i++), 又因是后置加, 所以先有- i++的值为- 6, 然后i 增值1 为7, 即i=7。 例1 main() {int a=3,b=5,c; c=a*b+++b; printf ( “c=%d”, c);} 要得出c 的值, 首先要搞清+++的含义。++运算符的结合方向是自右向左的, 如果将表达式理解为:c=a*b+(++b);实际上C 编译器将表达式处理为:c=(a*b++)+b, 因为C 编译器总是从左至右尽可能多地将若干个字符组成一个运算符, 如i+++j 等价于(i++)+j。接下来是解决a*b++的问题, 因为++运算符的运算对象只能是整型变量而不能是表达式或常数, 所以a*b++显然是a*(b++)而非(a*b)++, 因此整个表达式就是c=(a*(b++))+b。 例2 main() { int i=1,j; j=i+++i+++i++; printf( “i=%d,j=%d\n”, i,j);} 例3 main() { int i=1,m; m=++i+++i+++i; printf( “i=%d,m=%d\n”, i,m);}

(完整word版)C语言运算符与表达式的练习题答案

C语言运算符与表达式的练习题 单项选择题 (1)以下选项中,正确的 C 语言整型常量是(D)。 A. 32L B. 510000 C. -1.00 D. 567 (2)以下选项中,(D)是不正确的 C 语言字符型常量。 A. 'a' B. '\x41' C. '\101' D. "a" (3)字符串的结束标志是(C)。 A. 0 B. '0' C. '\0' D. "0" (4)算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。 A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运算、赋值运算 C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 (5)逻辑运算符中,运算优先级按从高到低依次为(D)。 A. && ! || B. || && ! C. && || ! D. ! && || (6)表达式!x||a==b 等效于(D)。 A. !((x||a)==b) B. !(x||y)==b C. !(x||(a==b)) D. (!x)||(a==b) (7)设整型变量 m,n,a,b,c,d 均为1,执行 (m=a>b)&&(n=c>d)后, m,n 的值是(A)。 A. 0,0 B. 0,1 C. 1,0 D. 1,1 *(8)设有语句 int a=3;,则执行了语句 a+=a-=a*=a; 后,变量 a 的值是(B)。 A. 3 B. 0 C. 9 D. -12 (9)在以下一组运算符中,优先级最低的运算符是(D)。 A. * B. != C. + D. = (10)设整型变量 i 值为2,表达式(++i)+(++i)+(++i)的结果是(B,上机13)。 A. 6 B. 12 C. 15 D. 表达式出错 (11)若已定义 x 和 y为double 类型,则表达式的值是(D)。

掌握C语言中基本的运算符

第3讲 运算符运算符、、表达式&类型转换 【课前思考课前思考】】 1、回忆数学中的运算符回忆数学中的运算符、、表达式表达式,,C 语言中的运算符语言中的运算符、、表达式是什么样子表达式是什么样子?? 2、能否直接将一个浮点型数据赋值给整型变量能否直接将一个浮点型数据赋值给整型变量?? 【学习目标学习目标】】 掌握C 语言中基本的运算符、表达式,掌握C 语言中数据类型转换的方法 【学习指南学习指南】】 联想数学中的运算符及表达式,找出C 语言与其区别进行学习 【重 难 点】 重点: 算术运算符、关系运算符、逻辑运算符、赋值运算符、条件运算符及其优先级 “=”与“==”的区别 难点: 自增、自减运算,逻辑运算,逗号运算 【学时安排学时安排】】 学时:2学时 【知 识 点】 第3讲 运算符、表达式&类型转换 (1) 2.3 运算符与表达式 (2) 2.3.1 算术运算符与算术表达式....................................................................................2 1. 算术运算符.................................................................................................................2 2. 算术表达式.................................................................................................................3 2.3.2 自增与自减运算....................................................................................................4 1. 自增、自减运算符的使用形式.................................................................................4 2. 自增、自减运算符的优先级和结合性....................................................................5 2.3.3 关系运算符与关系表达式....................................................................................5 1. 关系运算符.................................................................................................................5 2. 关系表达式.................................................................................................................6 2.3.4 逻辑运算符与逻辑表达式....................................................................................6 1. 逻辑运算符.................................................................................................................6 2. 逻辑表达式.................................................................................................................7 2.3.5 赋值运算符与赋值表达式....................................................................................8 2.3.6 条件运算符与求字节运算符................................................................................9 1. 条件运算符.................................................................................................................9 2. 求字节运算符.. (10)

逻辑运算符和表达式(c语言)

南京高等职业技术学校 课堂教学设计 授课时间:2014年11月6日第11周星期四教学目标教学准备 授课教师课时课程通过本节课的学习,学生能够: 1.清晰地说出各种逻辑运算符; 2.正确运算出逻辑表达式的值,并 通过程序验证结果; 重点教案□√ 马丽娟 1 C语言多媒体课件□√班级授课地点课题教学讲义□ 512212 机房4.2逻辑运算符与逻辑表达 式 1.逻辑表达式的求值运算; 2.逻辑表达式的求值优化。 学生工作页□ 课堂特殊要求(指教师、学生的课前准备活动等) 教师:安装Win-TC程序难点 教具□√ 逻辑表达式的求值优化授课形式 理论讲授课 教学环节时间分配教师活动学生活动教学方法媒体手段导入新课 5 提出问题,并举例说明听讲、思考、回答讲授法PPT 新课讲授20 讲授、分析听讲、讨论并记录讲授法PPT 巩固练习15 布置任务、巡视、答疑思考、编程并回答问题练习法Win-TC 课堂小结 3 归纳、总结听讲、回答问题讲授法PPT 布置作业 2 布置作业记录讲授法PPT 板书设计 §4.2 逻辑运算符与逻辑表达式 ?逻辑运算符:&&、||、! ?逻辑表达式的值:非0即1 ?逻辑运算的求值优化工作任务/教学情境设置 无课后作业 书面作业:P52 随堂练习 课后反思

教案纸 教学内容 4.2 逻辑运算符与逻辑表达式 一、复习导入(5min) 1. 复习:请学生说出关系运算符有哪些? 请学生回答关系运算表达式的值? 教师进行补充。 2.导入新课: 1、学生参加技能大赛培训的条件? ?扎实的专业知识与较高的实践能力 教师强调与的关系 2、参加技能大赛集训而停课的条件? ?移动互联或智能家居 教师强调或的关系 3、学生回答引入禁烟区的条件? ?没有吸烟非 教师强调非的关系 二、新课讲授(20min) 逻辑运算符 1.教师根据逻辑关系给出三种逻辑运算符的表示形式: &&、||、! 2.教师利用具体的表达式关系分析各种逻辑运算符的作用: 逻辑与相当于英语中的and; 逻辑或相当于英语中的or; 逻辑非相当于英语中的no; 3.教师根据具体的逻辑关系引出逻辑表达式的概念及表示形式: 表达式1&&表达式2 a&&b 表达式1||表达式2 a || b !表达式!a

C语言运算符与表达式的练习题

C语言运算符与表达式的练习题 (作业写到纸质作业本上,在规定时间内交给助教批阅,不要 再网上提交) 一、单项选择题 (1) 以下选项中,正确的C 语言整型常量是。 A. 32L B. 510000 C. -1.00 D. 567 (2) 以下选项中,是不正确的C 语言字符型常量。 A. 'a' B. '\x41' C. '\101' D. "a" (3) 在C 语言中,字符型数据在计算机内存中,以字符 的形式存储。 A. 原码 B. 反码 C. ASCII 码 D. BCD码 (4) 字符串的结束标志是。 A. 0 B. '0' C. '\0' D. "0" (5) 算术运算符、赋值运算符和关系运算符的运算优先级按 从高到低依次为。 A. 算术运算、赋值运算、关系运算 B. 算术运算、关系运 算、赋值运算

C. 关系运算、赋值运算、算术运算 D. 关系运算、算术运算、赋值运算 (6) 逻辑运算符中,运算优先级按从高到低依次为。 A. &&,!,|| B. ||,&&,! C. &&,||,! D. !,&&,|| (7) 表达式!x||a==b 等效于。 A. !((x||a)==b) B. !(x||y)==b C. !(x||(a==b)) D. (!x)||(a==b) (8) 设整型变量m,n,a,b,c,d 均为1,执行(m=a>b)&&(n=c>d)后, m,n 的值是。 A. 0,0 B. 0,1 C. 1,0 D. 1,1 (9) int b=0,x=1;执行语句if(x++) b=x+1; 后,x,b 的值依次为。 A. 2,3 B. 2,0 C. 3,0 D. 3,2 (10) 设有语句int a=3;,则执行了语句a+=a-=a*=a; 后,变量 a 的值是。 A. 3 B. 0 C. 9 D. -12 (11) 在以下一组运算符中,优先级最低的运算符是。 A. * B. != C. + D. =

c语言中的关系运算符和逻辑运算符

1.逻辑运算符 逻辑运算符是指用形式逻辑原则来建立数值间关系的符号。 Turbo C的逻辑运算符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 操作符作用 ───────────────────────────── && 逻辑与 || 逻辑或 ! 逻辑非 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.关系运算符 关系运算符是比较两个操作数大小的符号。 Turbo C的关系运算符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 操作符作用 ───────────────────────────── > 大于 >= 大于等于 < 小于 <= 小于等于 == 等于 != 不等于 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━关系运算符和逻辑运算符的关键是真(true)和假(false)的概念。Turbo C中 true可以是不为0的任何值, 而false则为0。使用关系运算符和逻辑运算符表达式时, 若表达式为真(即true)则返回1, 否则, 表达式为假(即false), 则返回0。 例如: 100>99 返回1 10>(2+10) 返回0 !1&&0 返加0 对上例中表达式!1&&0, 先求!1和先求1&&0将会等于出不同的结果, 那么何 者优先呢? 这在Turbo C中是有规定的。有关运算符的优先级本节后面将会讲到。 3.按位运算符

Turbo C和其它高级语言不同的是它完全支持按位运算符。这与汇编语言的位操作有些相似。 Turbo C中按位运算符有: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 操作符作用 ──────────────────────────── & 位逻辑与 | 位逻辑或 ^ 位逻辑异或 - 位逻辑反 >> 右移 << 左移 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━按位运算是对字节或字中的实际位进行检测、设置或移位, 它只适用于字符 型和整数型变量以及它们的变体, 对其它数据类型不适用。 关系运算和逻辑运算表达式的结果只能是1或0。而按位运算的结果可以取0 或1以外的值。 要注意区别按位运算符和逻辑运算符的不同, 例如, 若x=7, 则x&&8 的值为真(两个非零值相与仍为非零), 而x&8的值为0。 移位运算符">>"和"<<"是指将变量中的每一位向右或向左移动, 其通常形式为: 右移: 变量名>>移位的位数 左移: 变量名<<移位的位数 经过移位后, 一端的位被"挤掉", 而另一端空出的位以0 填补, 所以, Turbo C中的移位不是循环移动的。 4.Turbo C的特殊运算符 一)"?"运算符 "?"运算符是一个三目运算符, 其一般形式是: <表达式1>?<表达式2>:<表达式3>; "?"运算符的含义是: 先求表达式1的值, 如果为真, 则求表达式2 的值并把它作为整个表达式的值; 如果表达式1 的值为假, 则求表达式3 的值并把它作为整个表达式的值。 例如: main()

单片机C语言必备-运算符与关键字集

单片机C语言的必备基础 对单片机C语言来说,掌握以下几点是必须的,尤其对初学者来讲,更是要熟记的:一、单片机C语言的运算符和表达式 1.1运算符的种类、优先级和结合性 C语言中运算符和表达式数量之多,在高级语言中是少见的。正是丰富的运算符和表达式使c语言功能十分完善。这也是c语言的主要特点之一。 C语言的运算符不仅具有不同的优先级,而且还有一个特点,就是它的结合性。在表达式中,各运算量参与运算的先后顺序不仅要遵守运算符优先级别的规定,还要受运算符结合性的制约,以便确定是自左向右进行运算还是自右向左进行运算。这种结合性是其它高级语言的运算符所没有的,因此也增加了c语言的复杂性。 1.2运算符的种类 C语言的运算符可分为以下几类: 1.算术运算符 用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、自增(++)、自减(--)共七种。 2.关系运算符 用于比较运算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)六种。 3.逻辑运算符 用于逻辑运算。包括与(&&)、或(||)、非(!)三种。 4.位操作运算符 参与运算的量,按二进制位进行运算。包括位与(&)、位或(|)、位非(~)、位异或(^)、左移(<<)、右移(>>)六种。 5.赋值运算符 用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=)和复合位运算赋值(&=,|=,^=,>>=,<<=)三类共十一种。 6.条件运算符 这是一个三目运算符,用于条件求值(?:)。 7.逗号运算符 用于把若干表达式组合成一个表达式(,)。 8.指针运算符 用于取内容(*)和取地址(&)二种运算。 9.求字节数运算符 用于计算数据类型所占的字节数(sizeof)。 10.特殊运算符 有括号(),下标[],成员(→,.)等几种。 1.3优先级和结合性 C语言中,运算符的运算优先级共分为15级。1级最高,15级最低。在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。 C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z则y应先与“-”号结合,执行x-y运算,然后再执行+z的运算。这种自左至右的结合方向就称为“左结合性”。而自右至左的结合方向称为“右结合性”。最典型的右结合性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先

c语言运算符优先级

c语言运算符优先级 Turbo C的运算符非常丰富, 主要分为三大类: 算术运算符, 关系运算符与 逻辑运算符, 按位运算符。除此之外, 还有一些用于完成特殊任务的运算符。下 面分别进行介绍。 5.1 算术运算符 Turbo C的算术运算符如下: ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 操作符作用 ──────────────────────────── + 加, 一目取正 - 减, 一目取负 * 乘 / 除 % 取模 -- 减1 ++ 加1 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 一、一目和二目操作 一目操作是指对一个操作数进行操作。例如: -a是对a进行一目负操作。 二目操作(或多目操作)是指两个操作数(或多个操作数)进行操作。 在Turbo C中加、减、乘、除、取模的运算与其它高级语言相同。需要注意 的是除法和取模运算。 例如: 15/2 是15除以2商的整数部分7 15%2 是15除以2的余数部分1 对于取模运算符"%", 不能用于浮点数。 另外, 由于Turbo C中字符型数会自动地转换成整型数, 因此字符型数也可 以参加二目运算。 例如: main() { char m, n; /*定义字符型变量*/ m='c'; /*给m赋小写字母'c'*/ n=m+'A'-'a'; /*将c中的小写字母变成大写字母'B'后赋给n*/ ... } 上例中m='c'即m=98, 由于字母A和a的ASCII码值分别为65和97。这样可以将

小写字母变成大写字母, 反之, 如果要将大写字母变成小写字母, 则用c+ 'a' -'A'进行计算。 二、增量运算 在Turbo C中有两个很有用的运算符, 在其它高级语言中通常没有。这两个 运算符就是增1和减1运算符"++"和"--", 运算符"++"是操作数加1, 而"--" 则是 操作数减1。 例如: x=x+1 可写成x++, 或++x x=x-1 可写成x--, 或--x x++(x--)与++x(--x)在上例中没有什么区别, 但x=m++和x=++m却有很大差别。 x=m++ 表示将m的值赋给x后, m加1。 x=++m 表示m先加1后, 再将新值赋给x。 三、赋值语句中的数据类型转换 类型转换是指不同类型的变量混用时的类型改变。 在赋值语句中, 类型转换规则是: 等号右边的值转换为等号左边变量所属的类型。 例如: main() { int i, j; /*定义整型变量*/ float f, g=2.58; /*定义浮点型变量*/ f=i*j; /*i与j的乘积是整型数, 被转换成为浮点数赋给f*/ i=g; /*g中的浮点型数转换成为整型数赋给i*/ ... } 由于Turbo C按上述数据类型转换规则, 因此在作除法运算时应特别注意。 例如: main() { float f; int i=15; f=i/2; } 上面程序经运行后, f=7并不等于准确值7.5。正确的程序应该是: main() { float f; int i=15;

c语言运算符的结合性

运算符的结合性 运算符的结合性指同一优先级的运算符在表达式中操作的组织方向, 即: 当一个运算对象两侧运算符的优先级别相同时, 运算对象与运算符的结合顺序, C 语言规定了各种运算符的结合方向( 结合性) 。大多数运算符结合方向是“自左至右”, 即: 先左后右, 例如a- b+c, b 两侧有- 和+两种运算符的优先级相同, 按先左后右结合方向, b 先与减号结合, 执行a- b 的运算, 再执行加c 的运算。除了自左至右的结合性外, C 语言有三类运算符参与运算的结合方向是从右至左。即: 单目运算符, 条件运算符, 以及赋值运算符。关于结合性的概念在其他高级语言中是没有的, 这是C语言的特点之一。 ++a 或a++和--a 或a--分别称为前置加或后置加运算和前置减或后置减运算,都是单目运算符。值得注意的是, 前置、后置运算只能用于变量, 不能用于常量和表达式, 且结合方向是从右至左。如当i=6 时, 求- i++的值和i 的值。由于“- ”(负号) “++”为同一个优先级, 故应理解为- (i++), 又因是后置加, 所以先有-i++的值为-6, 然后i 增值1 为7, 即i=7。 例1 main() { int a = 3, b = 5, c; c = a * b++ + b; printf ("c=%d", c); } 要得出c 的值, 首先要搞清+++的含义。++运算符的结合方向是自右向左的, 如果将表达式理解

为:c=a*b+(++b);实际上C 编译器将表达式处理为:c=(a*b++)+b, 因为C 编译器总是从左至右尽可能多地将若干个字符组成一个运算符,如i+++j 等价于(i++)+j。接下来是解决a*b++的问题,因为++运算符的运算对象只能是整型变量而不能是表达式或常数,所以a*b++显然是a*(b++)而非(a*b)++,因此整个表达式就是c=(a*(b++))+b,结果为c=20。 例2 main() { int i = 1, j; j = i++ +i++ +i++; printf("i=%d,j=%d\n", i, j); } 例3 main() { int i = 1, m; m = (++i) + (++i) + (++i); printf( "i=%d,m=%d\n", i,m); } j 和m 的值均由表达式求得, 并且这两个表达式均由自增运算符、加法运算符和赋值运算符组成。那么, 它们的值到底为多少呢? j=1+1+1=3 还是j=1+2+3=6? m=2+3+4=9 还是

C语言常用逻辑符号

逻辑非:! 1&&1=1,0&&1=0(1为真,0为假) 逻辑或:|| 1&&0=1,0&&0=0(1为真,0为假) 取反:~ 如对11010 取反后为00101 位与:& 位与:&& 如对11010和10101 位与后为10000 就是0&1=1,1&1=1 0 与0或1位与都为0 位或:| 如对11010和10101 位或后为11111 就是0||0=1,0||1=1 1 与0或1位或都为1 位异或:^ 如对11010和10101 位异或后为10000 就是0||0=1,0||1=1,俩个相同则为1,不同则为0 1级优先级左结合 () 圆括号 [] 下标运算符 -> 指向结构体成员运算符 . 结构体成员运算符 2级优先级右结合 ! 逻辑非运算符 ~ 按位取反运算符 ++ 自增运算符 -- 自减运算符 - 负号运算符 (类型) 类型转换运算符 * 指针运算符 & 地址与运算符 sizeof 长度运算符

3级优先级左结合 * 乘法运算符 / 除法运算符 % 取余运算符 4级优先级左结合 + 加法运算符 - 减法运算符 5级优先级左结合 << 左移运算符 >> 右移运算符 6级优先级左结合 <、<=、>、>= 关系运算符7级优先级左结合 == 等于运算符 != 不等于运算符 8级优先级左结合 & 按位与运算符 9级优先级左结合

^ 按位异或运算符 10级优先级左结合 | 按位或运算符举例:0xfe|0xef 即为1111 1110 与1110 1111按位或运算则答案为:1111 1111 即0xff。 11级优先级左结合 && 逻辑与运算符 12级优先级左结合 || 逻辑或运算符 13级优先级右结合 ? : 条件运算符 14级优先级右结合 =赋值运算符 + =加后赋值运算符如s+=1表示s=s+1 - =减后赋值运算符如s-=1表示s=s-1 *=乘后赋值运算符 / =除后赋值运算符 % = 取模后赋值运算符 < <=左移后赋值运算符 >>=右移后赋值运算符 &=按位与后赋值运算符

C语言运算符优先级和结合性一览表

所谓优先级就是当一个表达式中有多个运算符时,先计算谁,后计算谁。这个其实我们在小 学学算术的时候就学过,如 但是C语言中的运算符已经远不止四则运算中的加减乘除了,还有其他很多运算符。当它们出现在同一个表达式中时先计算谁后计算谁呢?所以本节还是有必要讲一下的。最后我还会将所有运算符展示出来,然后告诉你哪个优先级高、哪个优先级低。 首先不需要专门记忆,也没有必要。因为作为初学者,哪个优先级高、哪个优先级低我们很难记住。就算死记硬背记住了,时间长不用也会忘记。所以当一个表达式中有多个运算符时,如果不知道哪个优先级高哪个优先级低就查一下优先级表,附录E有一个运算符优先级表。此外用的时间长了自然而然就记住了,这样记才会记得深刻。 而且事实上在编程的时候也不需要考虑优先级的问题。因为如果不知道优先级高低的话,加 根据运算符的优先级,这条语句完全可以写成: 但是第一种写法别人一看就知道先计算谁后计算谁。 而且加圆括号也是一种编程规范,因为程序不只是写给自己看。

此外运算符还有“目”和“结合性”的概念,这个很简单。“目”就是“眼睛”的意思,一 3+2 3 和2 就像它的两只眼睛,所以这个运算符是双目的。 C 它就只有一只眼睛,所以是单目的。整个C语言中只有一个三目运算符, 这个稍后讲到条件语句的时候再介绍。关于“目”大家了解一下就行了。 那么“结合性”是什么呢?上面讲的优先级都是关于优先级不同的运算符参与运算时先计算谁后计算谁。但是如果运算符的优先级相同,那么先计算谁后计算谁呢?这个就是由“结合性”决定的。 比如乘和除的优先级相同,但是计算的时候是从左往右,即先计算乘再计算除,所以乘和除的结合性就是从左往右。就是这么简单! C语言中大多数运算符的结合性都是从左往右,只有三个运算符是从右往左的。一个是单目 运算符,另一个是三目运算符,双目运算符中只有赋值运算符的结合性是从右往左的,其他的都是从左往右。运算符的“结合性”也不要死记,在不断使用中就记住了。 运算符优先级和结合性一览表

C语言运算符与表达式

一、分类 C语言一共有34种运算符,10种运算类型:算术运算符(+、-、*、/、%)、关系运算符(>、>=、==、!=、<、<=)、位运算符(>>、<<、==、!=、<、<=)、逻辑运算符(!、||、&&)、条件运算符、(?:)指针运算符(&、*)、赋值运算符(=)、逗号运算符(,)、求字节运算符(sizeof)、强制类型转换运算符((类型名))、其他(下标[]、分量、函数);若按参与运算的对象个数,C 语言运算符可分为单目运算符(如!)、双目运算符(如+、-)和三目运算符(如?:) 二、运算符的结合性和优先级 1. 运算符的结合性 在C语言的运算符中,所有的单目运算符、条件运算符、赋值运算符及其扩展运算符,结合方向都是从右向左,其余运算符的结合方向是从左向右。 2.运算符的优先级 初等运算符(圆括号()、下标运算符[]、结构体成员运算符->)>单目运算符>算术运算符(先乘除后加减)>关系运算符>逻辑运算符(不包括!)条件运算符>赋值运算符>逗号运算符 三、算术运算符合和算术表达式 1.基本的算数运算符 (1). +加法运算或正值运算符 4+4、+5、 (2).- 减法运算或负值运算符 6-4、-10、-29 (3). *乘法运算 注意符号,不是x,而是* (4). /除法运算 注意符号,不是÷,也不是\,而是/ 整数除于整数,还是整数。1/2的值是0,这个并不是二分之一,不会四舍五入,直接截断取值。 (5)%取余运算 取余:即两个整数相除之后的余数 注意:%两侧只能是整数,正负性取决于%左侧的数值 2.注意: (1).当运算对象是负数时,不同机器的运算结果也可能是不同的。 (2).双目运算符两边的数值类型必须一致才能进行运算,所得结果也是相同类型的数值。(3).双目运算符两边的数值类型如果不一致,必须由系统先进行一致性转换。 转换规则:char->short->int->unsigned->long->double->float

相关主题
文本预览
相关文档 最新文档