单片机C语言必备-运算符与关键字集
单片机c语言教程:运算符和表达式(位运算符)

单片机c语言教程:运算符和表达式(位运算符)
学过汇编的朋友都知道汇编对位的处理能力是很强的,但是单片机C 语言
也能对运算对象进行按位操作,从而使单片机C 语言也能具有一定的对硬件直
接进行操作的能力。
位运算符的作用是按位对变量进行运算,但是并不改变参
与运算的变量的值。
如果要求按位改变变量的值,则要利用相应的赋值运算。
还有就是位运算符是不能用来对浮点型数据进行操作的。
单片机c 语言中共有
6 种位运算符。
位运算一般的表达形式如下:
变量 1 位运算符变量 2 位运算符也有优先级,从高到低依次是:~(按位取反)(左移) (右
移) (表达形式。
程序很简单,用P1 口做运算变量,P1.0-P1.7 对应P1 变量的最低位到最高位,通过连接在P1 口上的LED 我们便能直观看到每个位运算后变量是否有改变或如何改变。
程序如下:
#include at89x51.h
void main(void)
{
unsigned int a;
unsigned int b;
unsigned char temp; //临时变量
P1 = 0xAA; //点亮D1,D3,D5,D7 P1 口的二进制为10101010,为0 时点亮LED
for (a=0;a1000;a++)
for (b=0;b1000;b++); //延时
temp = P1 0x7; //单纯的写P1|0x7 是没有意义的,因为没有变量被影响,。
C51单片机关键字

构成 do..while 循环结构
数据类型说明 双精度浮点数
程序语句
构成 if..else 选择结构
数据类型说明 枚举
程序语句
退出最内层循环
程序语句
Switch 语句中的选择项
数据类型说明 单字节整型数或字符型数据
存储类型说明 在程序执行过程中不可更改的常量值
程序语句
转向下一次循环
程序语句
Switch 语句中的失败选择项
数据类型说明 联合类型数据
数据类型说明 无符号数数据
数据类型说明 无类型数据
数据类型说明 该变量在程序执行中可被隐含地改变
程序语句
构成 while 和 do..while 循环结构
关键字 bit sbit Sfr Sfr16 data bdata idata pdata xdata code interrupt reentrant using
C51 单片机中的关键字
C 51 关 键 字
用
途说
明
存储种类说明 用以说明局部变量,缺省值为此
程序语句
退出最内层循环
程序语句
Switch 语句中的选择项
数据类型说明 单字节整型数或字符型数据
存储类型说明 在程序执行过程中不可更改的常量值
程序语句
转向下一次循环
程序语句
Switch 语句中的失败选择项
程序语句
数据类型说明 基本整型数
数据类型说明 长整型数
存储种类说明 使用 CPU 内部寄存的变量
程序语句
函数返回
数据类型说明 短整型数
数据类型说明 有符号数,二进制数据的最高位为符号位运算符Βιβλιοθήκη 计算表达式或数据类型的字节数
c语言运算符号详解

c语言运算符号详解摘要:一、C语言运算符号概述1.运算符号的定义与分类2.运算符号在C语言中的重要性二、算术运算符1.加法运算符2.减法运算符3.乘法运算符4.除法运算符5.取模运算符6.自增运算符7.自减运算符三、关系运算符1.等于运算符2.不等于运算符3.大于运算符4.小于运算符5.大于等于运算符6.小于等于运算符四、逻辑运算符1.与运算符2.或运算符3.非运算符五、位运算符1.位与运算符2.位或运算符3.位非运算符4.位异或运算符5.左移运算符6.右移运算符六、赋值运算符1.简单赋值运算符2.复合赋值运算符七、条件运算符1.条件运算符的定义2.条件运算符的用法八、逗号运算符1.逗号运算符的定义2.逗号运算符的用法九、指针运算符1.取内容运算符2.取地址运算符十、求字节数运算符1.sizeof运算符的定义2.sizeof运算符的用法正文:C语言运算符号详解C语言是一种功能强大的编程语言,广泛应用于各种领域。
在C语言中,运算符号是构成表达式的重要组成部分。
本文将对C语言中的运算符号进行详细介绍。
一、C语言运算符号概述C语言运算符号主要分为以下几类:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符、逗号运算符和指针运算符。
这些运算符号在C语言中起到非常重要的作用,它们用于表示各种运算关系,从而实现程序逻辑的控制。
二、算术运算符算术运算符用于进行基本的数值运算,包括加法、减法、乘法、除法、取模等。
C语言中的算术运算符如下:1.加法运算符:+2.减法运算符:-3.乘法运算符:*4.除法运算符:/5.取模运算符:%6.自增运算符:++三、关系运算符关系运算符用于比较两个值之间的大小关系,包括等于、不等于、大于、小于、大于等于和小于等于等。
C语言中的关系运算符如下:1.等于运算符:==2.不等于运算符:!=3.大于运算符:>4.小于运算符:<5.大于等于运算符:>=6.小于等于运算符:<=四、逻辑运算符逻辑运算符用于进行逻辑判断,包括与、或、非等。
32个关键字在c语言中的含义和作用

在C语言中,有很多关键字是程序员需要熟悉和理解的,这些关键字在编写C语言程序时扮演着至关重要的角色。
本文将深度探讨其中32个关键字在C语言中的含义和作用,帮助读者更深入地理解这些关键字的用法和功能。
1. int在C语言中,int是一种数据类型,用来声明整数类型的变量。
它可以存储整数值,范围通常是-xxx到xxx。
2. floatfloat是C语言中的另一种数据类型,用来声明单精度浮点数变量。
它可以存储小数值,通常范围是1.2E-38到3.4E+38。
3. charchar是C语言中的字符类型,用来声明一个字符变量。
它通常用来存储ASCII码中的字符。
4. doubledouble是C语言中的双精度浮点数类型,用来声明双精度浮点数变量。
它可以存储更大范围的小数值,通常范围是2.3E-308到1.7E+308。
5. ifif是C语言中的条件语句,用来根据指定条件执行不同的代码块。
它对程序的流程进行控制,根据条件的真假来决定执行哪一部分代码。
6. elseelse是if语句的补充,用来在条件不满足时执行另一段代码。
它可以用于if语句的后续逻辑判断。
7. whilewhile是C语言中的循环语句,用来重复执行一段代码块,直到指定的条件不再满足为止。
它可以用于处理需要重复执行的任务。
8. forfor是另一种循环语句,通常用于已知循环次数的情况下重复执行一段代码块。
它的结构更加简洁和清晰。
9. dodo-while是C语言中的另一种循环语句,与while的区别在于它先执行一次循环体,再进行条件判断。
它保证循环体至少会执行一次。
10. switchswitch是C语言中的多路分支语句,通过不同的case标签来选择不同的执行路径。
它对多个条件进行判断,并执行相应的代码块。
11. casecase是switch语句中的分支标签,用来指定需要执行的代码块。
它是switch语句的重要组成部分。
12. breakbreak是C语言中的控制语句,用来跳出当前循环或switch语句。
32个关键字在c语言中的含义和作用

32个关键字在c语言中的含义和作用【32个关键字在c语言中的含义和作用解析】在C语言中,有一些关键字是非常重要的,它们在程序中扮演着至关重要的角色。
下面,我将对这32个关键字进行深入解析,让我们来一探究竟。
1. #include在C语言中,#include用于包含头文件,使得在当前文件中可以使用所包含文件中的定义。
2. intint是C语言中的一个基本数据类型,代表整数。
3. charchar也是C语言中的一个基本数据类型,代表字符。
4. floatfloat是C语言中的一个基本数据类型,代表单精度浮点数。
5. doubledouble是C语言中的一个基本数据类型,代表双精度浮点数。
6. ifif是C语言中的条件语句,用于进行条件判断。
7. elseelse也是C语言中的条件语句,用于在条件不成立时执行的语句块。
8. switchswitch语句用于多条件判断,可以替代多个if-else语句。
9. case在switch语句中,case用于列举不同的条件分支。
10. default在switch语句中,default用于表示默认的条件分支。
11. forfor循环用于重复执行一个语句块。
12. whilewhile循环也用于重复执行一个语句块,但条件判断在循环之前进行。
13. dodo-while循环会先执行一次循环体,然后再进行条件判断。
14. breakbreak语句用于跳出循环。
15. continuecontinue语句用于结束当前循环,并开始下一次循环。
16. returnreturn语句用于结束函数的执行,并返回一个值。
17. voidvoid用于声明函数的返回类型,表示该函数没有返回值。
18. sizeofsizeof用于获取变量或类型的长度。
19. typedeftypedef用于给数据类型取一个新的名字。
20. structstruct用于定义结构体类型。
21. unionunion也用于定义数据类型,但它和结构体不同,它的所有成员共用一块内存。
c语言的32个关键字及其含义

c语言的32个关键字及其含义C语言是一门广泛应用于计算机编程的高级编程语言,其简洁、高效的特点使之成为许多程序员的首选。
而C语言的关键字则是构成C语言语法结构的基石,掌握这些关键字的含义对于编写高质量的C代码至关重要。
本文将会介绍C语言的32个关键字及其含义。
一、自动变量(auto)auto关键字用于声明自动变量,自动变量是在代码块中定义的变量。
它们的生命周期仅限于所在代码块,函数的参数也属于自动变量。
二、断言(assert)assert关键字用于在程序运行时进行断言验证,如果断言条件为假,程序将会中止执行。
断言通常用于调试和排错。
三、带宽限定(band)band关键字用于限定带宽,常用于定义延迟函数、外部中断和总线访问等场景。
四、布尔类型(bool)bool关键字用于声明布尔类型的变量,布尔类型只有两个值:真和假。
一般用于判断语句和循环语句的条件。
五、跳过(break)break关键字用于跳出循环或者switch语句块,提前终止程序的执行。
六、函数调用(call)call关键字用于向函数传递参数并调用函数。
它与return关键字相对应,后者用于从函数返回结果。
七、case标签(case)case关键字用于定义switch语句中不同分支的标签,根据不同的条件执行相应的代码。
八、常量(const)const关键字用于声明常量,常量值在程序执行期间不可更改。
通常用于定义不变的特定值,提高代码的可读性和可维护性。
九、continue(continue)continue关键字用于结束当前循环的当前迭代,并进入下一轮循环的迭代。
通常用于跳过某些不满足条件的循环迭代。
十、默认(default)default关键字用于定义switch语句中默认分支的代码块。
如果没有匹配的case 标签,将会执行默认分支的代码。
十一、定义(define)define关键字用于定义宏。
宏是一种在程序编译之前被展开的符号常量或者代码片段。
大一c语言必背基础知识点
大一c语言必背基础知识点C语言是计算机专业学习的基石,掌握其基础知识点对于大一学生来说至关重要。
本文将为大家介绍C语言的必背基础知识点,帮助大家打下扎实的编程基础。
一、C语言的概述C语言是一种通用的、结构化的编程语言,于1972年由贝尔实验室的Dennis M.Ritchie开发而成。
C语言具有简洁、高效的特点,被广泛应用于系统软件、嵌入式系统等领域。
二、关键字C语言中的关键字是预先定义的标识符,用于表示语法结构的关键词。
常见的C语言关键字包括if、else、for、while、do等,这些关键字在程序中具有特殊的含义,不能作为标识符使用。
三、数据类型C语言中的数据类型用于定义数据存储的方式和操作的规则。
常见的C语言数据类型包括整型、浮点型、字符型等。
其中,整型可分为有符号整型和无符号整型,浮点型可分为单精度浮点型和双精度浮点型。
四、运算符C语言中的运算符用于进行各种数学和逻辑运算。
常见的C语言运算符包括算术运算符、关系运算符、逻辑运算符等。
例如,加法运算符+用于实现两个数相加的功能,等于运算符==用于判断两个数是否相等。
五、控制流程控制流程用于控制程序的执行顺序。
在C语言中,常见的控制流程包括顺序结构、分支结构和循环结构。
分支结构用于根据条件选择不同的执行路径,循环结构用于重复执行某段代码块。
六、数组数组是一种用于存储相同类型的多个元素的数据结构。
在C语言中,数组的声明和使用十分重要。
通过数组,我们可以用一个变量名表示多个数据,方便进行批量处理和统一管理。
七、指针指针是C语言的重要特性,用于存储变量的内存地址。
通过指针,我们可以直接访问和操作内存中的数据。
掌握指针的使用是提高程序效率和灵活性的关键。
八、函数函数是一段封装了特定功能的代码块,可以通过函数名调用执行。
在C语言中,函数的定义和调用是程序模块化和代码复用的基础。
学会编写和调用函数是掌握C语言的重要一步。
九、结构体结构体是一种自定义的数据类型,用于将不同类型的数据组合成一个整体。
C语言32个关键字九种控制语句34种运算符
第一个关键字:auto用来声明自动变量。
可以显式的声明变量为自动变量。
只要不是声明在所有函数之前的变量,即使没加auto关键字,也默认为自动变量。
并且只在声明它的函数内有效。
而且当使用完毕后,它的值会自动还原为最初所赋的值。
自动变量使用时要先赋值,因为其中包含的是未知的值。
例:auto int name=1;第二个关键字:static用来声明静态变量。
可以显式的声明变量为静态变量。
也为局部变量。
只在声明它的函数内有效。
它的生命周期从程序开始起一直到程序结束。
而且即使使用完毕后,它的值仍旧不还原。
即使没有给静态变量赋值,它也会自动初始化为0.例:static int name=1.第三个关键字:extern用来声明全局变量。
同时声明在main函数之前的变量也叫全局变量。
它可以在程序的任何地方使用。
程序运行期间它是一直存在的。
全局变量也会初始化为0.例:extern int name;第四个关键字:register用来声明为寄存器变量。
也为局部变量,只在声明它的函数内有效。
它是保存在寄存器之中的。
速度要快很多。
对于需要频繁使用的变量使用它来声明会提高程序运行速度。
例:register int name=1;第五个关键字:int用来声明变量的类型。
int为整型。
注意在16位和32位系统中它的范围是不同的。
16位中占用2个字节。
32位中占用4个字节。
还可以显式的声明为无符号或有符号:unsigned int signed int .有符号和无符号的区别就是把符号位也当作数字位来存储。
也可用short和long来声明为短整型,或长整行。
例:int num;第六个关键字:float用来声明变量的类型。
float为浮点型,也叫实型。
它的范围固定为4个字节。
其中6位为小数位。
其他为整数位。
例:float name;第七个关键字:double用来声明为双精度类型。
它的范围为8个字节。
14位为小数位。
也可使用更高精度的long double 它的范围则更大,达到10字节。
大一c语言必备基础知识点
大一c语言必备基础知识点C语言作为计算机科学专业的必修课程,是学习编程的基础。
在大一阶段,学习C语言的基础知识点对于打下坚实的编程基础至关重要。
本文将介绍大一C语言学习中的必备基础知识点,帮助初学者快速入门和理解编程的基本概念。
一、基本数据类型1. 整型:int、long、short等2. 浮点型:float、double等3. 字符型:char4. 布尔型:bool二、运算符和表达式1. 算术运算符:+、-、*、/、%等2. 关系运算符:==、!=、>、<、>=、<=等3. 逻辑运算符:&&、||、!等4. 赋值运算符:=、+=、-=、*=、/=等5. 位运算符:&、|、^、~、<<、>>等三、控制语句1. 条件语句:if-else语句、switch语句2. 循环语句:for循环、while循环、do-while循环3. 跳转语句:break语句、continue语句、return语句四、函数1. 函数的定义和调用2. 函数参数传递:值传递、引用传递3. 函数返回值4. 递归函数五、数组和字符串1. 数组的定义和初始化2. 多维数组3. 字符串的定义和操作六、指针1. 指针的基本概念2. 指针的运算:指针的加减、指针和数组的关系3. 指针和函数4. 动态内存分配:malloc、free函数七、结构体和联合体1. 结构体的定义和使用2. 结构体成员的访问3. 结构体数组和指针4. 联合体的定义和使用八、文件输入输出1. 文件的打开和关闭2. 文件的读取和写入3. 文件指针的定位和移动九、预处理指令1. 宏定义:#define指令2. 条件编译:#ifdef、#ifndef指令3. 头文件包含:#include指令十、错误处理和调试1. 编译错误和运行错误的区别2. 调试工具的使用3. 常见错误和排错技巧总结:本文介绍了大一学习C语言中的必备基础知识点,包括基本数据类型、运算符和表达式、控制语句、函数、数组和字符串、指针、结构体和联合体、文件输入输出、预处理指令以及错误处理和调试等内容。
c语言32个关键字详解
c语言32个关键字详解auto: auto关键字是c语言中用来声明局部变量的修饰符,它能够使程序员在一个函数的内部定义一个局部变量。
auto关键字的作用是使得这个局部变量在函数返回后不会消失,而是可以在函数的外部继续存在。
break: break关键字用于强制跳出循环,它可以用于while,do while或者for循环。
当它出现在循环内部时,循环立即终止,并且控制流程将会跳转到循环外部。
case: case关键字可以用来创建一个条件分支,并且它必须出现在switch语句中。
它可以使得程序不必以多重if语句来处理多重分支问题。
char: char关键字用来指定字符变量,它可以表示一个字符或者一个小整数,一般8位字节足以存放一个字符。
const: const关键字用来定义常量,它之后的变量不能被修改,一旦定义的常量将一直保存在程序的整个执行过程中。
continue: continue关键字用来结束当前迭代循环,并且进入下一次迭代循环。
当它出现在循环内部时,当前的循环将会立即终止,控制流程将会继续到循环的下一个迭代中。
default: default关键字用来指定switch中的默认case语句,当没有任何case匹配成功时,将会执行default后面的语句。
do: do关键字用来声明一个do-while循环,do-while循环通常用来保证在程序中某个条件至少被执行一次,它的基本形式为“do{}while()”,执行流程大致如下:首先执行do后面的语句,然后判断while后面的条件是否满足,如果满足,则继续执行do后面的语句,直到while条件不成立。
double: double关键字用来指定双精度浮点类型的变量,它能够表示一个比较大的数字,一般来说8个字节存储就足够了。
else: else关键字用来指定if语句的反条件分支,即当if检查的条件不满足时,会执行else后面的语句。
enum: enum关键字用来指定一组枚举类型的常量,它可以使枚举的常量有规律的递增或者递减,常用于建立某一种特定事物的有限集合。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机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语言的必备基础:
附表1-1ANSIC标准关键字
附录二AT89C51特殊功能寄存器列表(适用于同一架构的芯片)带*号的特殊功能寄存器都是可以位寻址的寄存器
附录三运算符优先级和结合性。