




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
——C
语言提高篇单片机原理及应用237.1.1标识符和关键字7.1.2C51数据类型7.1.34常量与变量C语言编程的基本概念和知识指针与指针变量。若定义变量x,&x即为x的指针,指针变量是指针的指针,若xp=&x,利用*xp即可访问变量x。16函一数个函。C数语由言说程明序部由分一和个函主数函体数两和部若分干组个成其。他函函数数说构明成部,分程是序对中函由数主名函、数函
数调类用型其、他形函参数名,和其形他参函类数型之等间所也做可的以说相明互。调用。C程序的执行是从main()函数开始,而对该函数的位置无特殊的规定。2753849#源in程c序lu文de件(需包要含包处含理其命他令源)程。序一文个件源时文,件应将在另本一程个序源头文部件用的包全含部命内令容包
#含in进c来lu,de或处者理说。把一个外部文件包含到本文件之中。C#d程e序fin中e的(一宏个定函义数)需。要在调C程用序另中一,个可子以函指数定时一,标另志一符个去函定数义应一写个在常前量面或,字否符则串应。声明。150主C程函序数书名写必格须式为自m由ai,n(一)。行C可程写序一通个过语函句数或调几用个去语执句行。指每定个的语工句作结。尾用
“;”结束。1.标识符6标识符是用来表示源程序中自定义对象名称的符号。其中的自定义对象可以是常量、变量、数组、结构、语句标号以及函数等。在C51语言中,标识符可以由字母(a~z,A~Z)、数字(0~9)和下划线
“_”组成,最多可支持32个字符。C51标识符的定义不是随意的,应遵循“简洁”和“见名知意”的原则,并需要符合一定的规则:标识符的第一个字符必须是字母或者下划线,不能为数字。由于有些编译系统专用的标识符以下划线开头,所以用户在定义标识符时一般不要以下划线开头。C51的标识符区分大小写,例如“ch1”和“Ch1”表示两个不同的标识符。用户自定义的标识符不能与系统保留的关键字重复。2.关键字7关键字是C51编译器保留的一些特殊标识符,具有特定的含义和用法。单片机C51程序语言继承了
ANSI
C
标定义的32个关键字,如表7-1所示。表7-1
C51的关键字关字用途□明dsaotriunutbtoclte同时C51数存数储据种类类型说明又结合单片机硬结用双基构以精本类说度整型明浮型数局点数据部数变量,缺省值为此件的特点扩展了19个关键字:sbwelroelisntacegkh_at_数程据序类语型句说明idata构退构长成出成整s最i型fw…内数itec层lhs选e循选择环择结结构构sfr16
alientryecpgnaeiusdmetefr数存程据储序类种语型类句说明S重枚使w新举用itc进ChP行语U数句内据中部类的寄型选存定择的义项变量eurcexninterrup
htiueaorrnt
small数存据储程类种序型类语说句明bdata
large联单在函合字其数类节他返型整程回数型序数模或块字中符说型明数了据的全局变量uncssfolhio_gnotansartttesdk_准存数据c类od型e说明无在单短符程精整b号序度型it数执浮数据行点过数程中不可p更d改at的a常量值cosvingfoutoniinrsdeuidneg数据程re序e型语nt说句ra明nt无转构有类向成符x型下f号odr数一数a循t据次,a环循二结环进构制数据c的o最m高pa位ct为符号位vdsoegilzfosaaebtuoiolileftt数据程d运类序a算t型语a符说句明S该构计w变成算itcs量g表hfor语在t达o句转程式中移序或的结执数失构行据败中类选可型择被的项隐字含节地数改变wstdhaiofitliec存程储序种语类句说明构静成态dwi变fo…h…量ileew和lshedi选loe循择wh环结il结e构循构环语句表7-2列出了Keil
uVision2
C51编译器所支持的数据类型。数据类型长度值域表7-2
C51编译器所支持的数据类型unsigfnloeadtchar四单字节±0~1.127555494E-38~±3.402823E+38signe*d
char1~单3字字节节对-12象8~的+地12址7unsigbnited
int双位字节0~或615535signsefrd
int单双字节0-3~2726585~+32767unsigsnfre1d6
long双四字节0~645259345967295signsebditlong四位字节0-2或1417483648~+214748364781.char字符类型char类型的长度是一个字节,通常用于定义处理字符数据的变量或常量。char字符类型分为无符号字符类型(
unsigned
char )和有符号字符类型(
signedchar),默认值为signed
char类型。unsigned
char 类型用字节中所有的位来表示数值,可以表达的数值范围是
0~
255
;
signed
char 类型中字节最高位表示数据的符号,
“
0
” 表示正数,
“
1
”表示负数(负数用补码表示),所能表示的数值范围是-128~+127。unsigned
char常用于处理ASCII字符或小于等于255的整型数。正数的补码与原码相同,负二进制数的补码等于它的绝对值按位取反后加1。说明92.int整型10int整型长度为两个字节,用于存放一个双字节数据。分为有符号整型数
signed
int和无符号整型数unsigned
int,默认值为signed
int类型。signed
int 表示的数值范围是
-32768
~
+32767 ,字节中最高位表示数据的符号,“0”表示正数,“1”表示负数;unsignedint表示的数值范围是0~65535。3.long长整型long长整型长度为四个字节,用于存放一个四字节数据。分有符号长整型
signed
long和无符号长整型unsigned
long,默认值为signed
long类型。signed
int 表示的数值范围是
-2147483648
~
+2147483647 ,字节中最高位表示数据的符号,
“
0
” 表示正数,
“
1
” 表示负数;
unsigned
long 表示范围是0~4294967295。5.*指针型指针型数据本身是一个变量,在这个变量中存放着指向另一个数据的地址。根据处理器的不同,指针型数据所占的内存单元也不尽相同,在C51中它的长度一般为1~3个字节。4.float浮点型float浮点型在十进制中具有7位有效数字,是符合IEEE-754标准的单精度浮点型数据,
占用四个字节。浮点数的结构较复杂,单片机使用较少。6.bit位标量bit 位标量是
C51 编译器的一种扩充数据类型,利用它可定义一个位标量,但不能定义位指针,也不能定义位数组。它的值是一个二进制位,非0即1。定义格式:bit 变量名=变量值。7.sfr特殊功能寄存器sfr是一种扩充数据类型,占用一个内存单元,地址范围为0x80~0xFF。定义格式为:sfr变量名=变量地址。利用它可以访问51单片机内部的所有特殊功能寄存器。例如,用
“
sfr P1=0x90
”
这一句定P1为P1端口在片内的寄存器。11sbit
P1_1=0x91;8.sfr16
16位特殊功能寄存器sfr16是一种扩充数据类型,占用两个内存单元,sfr16和sfr一样用于操作特殊功能寄存器,所不同的是,此类型的变量可访问16为特殊功能寄存器。定义格式:sfr16变量名=变量地址。此处的变量地址为16位中的低8位地址,其地址范围为0x80~0xFF。通过sfr16变量读16位特殊功能寄存器时,先读低字节,后读高字节;写特殊功能寄存器时先写高字节,后写低字节。9.sbit可位寻址位sbit是C51中的一种扩充数据类型,利用它可以访问芯片内部的RAM中的可寻址位或特殊功能寄存器中的可寻址位。定义格式:
sbit 变量名
=
位地址;
sbit 变量名
=SFR
地址
^
位序号;
sbit 变量名=sfr16变量^位序号。因P1端口的寄存器是可位寻址的,所以我们可以定义P1_1为P1中的P1.1引脚,同样我们可以用
P1.1的地址去写,这样在以后的程序语句中就可以用P1_1来对P1.1引脚进行读写操作了。例如:sbit
P1_1=P1^1;121.常量13常量是在程序运行过程中不能改变的量,如固定的数据表、字符等。常量的数据类型只有整型、浮点型、字符型、字符串型和位标量。整型常量不同数据类型的整型常量表示方法不同,十进制如123,0,-89等;十六进制则以0x开头如0x34,-0x3B等;长整型就在数字后面加字母L,如104L,034L,0xF340等。浮点型常量浮点型常量可分为十进制和指数表示形式。十进制浮点型常量由数字和小数点组成,整数或小数部分为0,可以省略但必须有小数点,如0.888,3345.345,0.0等。指数浮点型常量表示形式为:[±]数字[.数字]e[±]数字
[]中的内容为可选项,如125e3,7e9,-3.0e-3等。1.常量14常量是在程序运行过程中不能改变的量,如固定的数据表、字符等。常量的数据类型只有整型、浮点型、字符型、字符串型和位标量。(3)字符型常量字符型常量是单引号内的字符,如‘a’,‘d’等。表示不显示的控制字符,可以在该字符前面加一个反斜杠“\”组成专用转义字符,常用转义字符如表7-3所示。表7-3 常用转义字符表转义字符含义ASCII
码(16/10
进制)\\\ot'水空平字制符单表(引符N号(ULHLT)20790HH///3909\\bn"退换格行双符引(号BLFS)020A28HH//31840\rf\回换车页反符斜(杠CFFR)050DCH/191321.常量常量是在程序运行过程中不能改变的量,如固定的数据表、字符等。常量的数据类型只有整型、浮点型、字符型、字符串型和位标量。(4)字符串型常量字符串型常量由双引号内的字符组成,如“test”,“OK”等。当引号内没有字符时,为空字符串。在C中字符串常量是做为字符类型数组来处理的,在存储字符串时系统会在字符串尾部加上“\0”转义字符以作为该字符串的结束符。字符串常量“A”和字符常量‘A’是不同的,前者在存储时多占用一个字节的空间。151.常量16常量是在程序运行过程中不能改变的量,如固定的数据表、字符等。常量的数据类型只有整型、浮点型、字符型、字符串型和位标量。(5)位标量位标量是C51编译器的一种扩充数据类型,它的值是一个二进制位,不是0就是1。下面我们来看一些常量定义的例子:#define
False
0x0;//用预定义语句可以定义常量,这里定义False为0,True为1#define
True
0x1;//在程序中用到False编译时自动用0替换,同理True替换为1unsigned
int
code
a=100;//这一句用code把a定义在程序存储器中并赋值
const
unsigned
int
c=100;//用const定义c为无符号int常量并赋值以上两句它们的值都保存在程序存储器中,而程序存储器在运行中是不允许被修改的,所以如果在这两句后面用了类似a=110,a++这样的赋值语句,编译时将会出错。2.变量变量是可以在程序运行过程中不断变化的量,变量的定义可以使用所有C51编译器支持的数据类型。要在程序中使用变量必须先用标识符作为变量名,并指出所用的数据类型和存储模式,这样编译系统才能为变量分配相应的存储空间。17(1)变量的定义和作用范围定义一个变量的格式如下:[存储类型] 数据类型 [存储器类型] 变量名表在定义格式中除了数据类型和变量名表是必要的,其他都是可选项。存储类型不同存储类型的变量以及不同位置定义的变量具有不同的代码有效范围,也就是变量的作用域。在单片机程序中,按照变量的存储类型,可以分为:自动变量、全局变量、静态变量和寄存器变量。2.变量18自动型变量的作用域范围是函数或者复合语句变量。序文件的最前面,那么这个变量便是全局变量。一般是静在态函变数量的以内关部键或字者s复tat合ic语定句义中,使从用变。量作用的域内来部看。,在静C态51变中量,和函自数动或变复量合类语似句,内作部用定域义只自动变是量定时义,该关变键量字的au函to数可内以部省。略如,果即静默态认变为量自定动义型在函在数程外序部执,行将过具程有中全,局自的动作变用量域是。动态分配存储空间的而。从当内程存序占执用行的到角该度变,量静声态明变语量句和时全,局根变据变量类型自动为其分配存储空间。当该函数或者复合语量句类执似行,完其毕始后终,占该有变内量存的空存间储。空间将立刻自动取消,此时,该自动变量失效,在函数或者复合语句外部将不能够使用该变量。以关键字register声明。全局由变于量单有片时机也对称C为P外U寄部存变器量的。读写十分快,因此寄存器变量的操作速度要原高于其他类型的变在量编。译寄程存序器时变,量全常局用变于量某将一被变静量态名地频分繁配使适用当的情存况储,空这间样。做该可变以量提一高旦系分统配的空运间算,速在度整。个程序运由行于过单程片中机便资不源会有消限失,。程因序此中,只全允局许变同量时对整定个义程两序个文寄件存都器有变效量,。即如全果局多变于量两可个以,被在该编程译序文
时件会中自的动任地何将函其数他使的用寄。存器变量当做非寄存器
变量来处理。④②寄全存局器变变量量单全片局机变的量C是P以U关寄键存字器e中x也ter可n标以识保的存变少量的型,
变如量果,一这个种变变量量定称义为在寄所存有器函变数量的。外寄部存,器即变整量个程存储类型①③自静动态变量自动变量是以关键字auto标识的变量类型,其19存储器类型存储器类型的说明就是指定该变量在C51硬件系统中所使用的存储区域,并在编译时准确的定位。表7-4中是KEIL
uVision2所能认别的存储器类型。表7-4 存储器类型存储器类型说明data直接访问内部数据存储器(128
字节),访问速度最快bdata可位寻址内部数据存储器(16
字节),允许位与字节混合访问idata间接访问内部数据存储器(256
字节),允许访问全部内部地址pdata分页访问外部数据存储器(256
字节),用MOVX@Ri指令访问xdata外部数据存储器(64KB),用MOVX@DPTR指令访问code程序存储器(64KB),用MOVC@A+DPTR指令访问在AT89C51芯片中RAM只有低
128位,位于80H到FFH的高128位则在52芯片中才有用,并和特殊寄存器地址重叠。说明20如果省略存储器类型,系统则会按编译模式small,compact或large所规定的默认存储器类型去指定变量的存储区域。①small存储模式small存储模式将函数参数和局部变量放在片内RAM(默认变量类型为DATA,最大128字节)。另外所有对象包括栈都优先放置在片内RAM,当片内RAM用满,再向片外RAM放置。②compact存储模式compact存储模式中将参数和局部变量放在片外RAM(默认存储类型是PDATA,最大
256字节);通过R0、R1间接寻址。③large存储模式large存储模式将参数和局部变量直接放入片外RAM(默认的存储类型是XDATA,最大64KB);使用数据指针DPTR间接寻址,因此访问效率较低。21对变量进行绝对定位C51扩展的关键字_at_专门用于对变量作绝对定位,_at_使用在变量的定义中,其格式为:[存储类型] 数据类型 [存储区] 变量名1
_at_ 地址常数[,变量名2…]例如:①对data区域中的
unsigned char变量aa作绝对定位:unsigned
char
data
aa
_at_
0x30;②
对pdata区域中的
unsigned int数组cc作绝对定位:unsigned
int
pdata
cc[10] _at_
0x34;③
对xdata区域中的
unsigned char变量printer_port作绝对定位:unsigned
char
xdata
printer_port
_at_
0x7fff;22对变量进行绝对定位对变量绝对定位的几点说明:①
绝对地址变量在定义时不能初始化,因此不能对code型常量绝对定位②绝对地址变量只能够是全局变量,不能在函数中对变量绝对定位③绝对地址变量多用于I/O端口,一般情况下不对变量作绝对定位④位变量不能使用_at_绝对定位23(2)变量的初始化和赋值变量的初始化变量的初始化是指变量在被说明的同时赋给一个初值。外部变量和静态全程变量在程序开始处被初始化,局部变量包括静态局部变量是在进入定义它们的函数或复合语句时才作初始化。所有全程变量在没有明确的初始化时将被自动清零,而局部变量和寄存器变量在未赋值前其值是不确定的。对于外部变量和静态变量,初值必须是常数表达式,而自动变量和寄存器变量可以是任意的表达式,这个表达式可以包括常数和前面说明过的变量和函数。24//定义全程变量,在初始化时f0被清零,f1被赋0.225//定义静态局部变量,初始化时i被赋10,j不确定//定义局部变量,初始化时k被赋10*5=50//定义字符型指什变量并初始化float
f0,f1=0.2;main(){static
int
i=10,j;int
k=i*5;char
c='y';}变量的初始化例如:变量的赋值变量赋值是给已说明的变量赋给一个特定值。单个变量的赋值:①整型变量和浮点变量。赋值格式如下:变量名=表达式;例如:int
a,m;a=100,m=20;C语言中允许给多个变量赋同一值时可用连等的方式。说明26main(){{ifnlotaat,bn,;c;an=ba*=mc=*00.;1;//定义局部整型变量a,m//定义局部浮点变量n//给变量赋值//同时给a,b,c赋值}变量的赋值②字符型变量。字符型变量可以用三种方法赋值。例如:main(){char
a0,a1,a2;//定义局部字符型变量a0,a1,a2a0='b';//将字母b赋给a0a1=50;//将十进制数字2的ASCII值50赋给a1a2='\x0d';//将回车符赋给a2}27287.2.1算术运算符7.2.2关系运算符7.2.3逻辑运算符7.2.4布尔“位”运算符7.2.5赋值运算符7.2.6递增/递减运算符7.2.729运算符的优先级单片机C程序的运算符和表达式如下:②关系运算符6个>==<=<>=!=①算术运算符13个-
*/*=%/=+=%=+=++-=--③逻辑运算符3个&&(整体与)||(整体或)!④位操作运算符7个>>
<<&(按位变量与)
^~ &(取地址)⑤指针运算符:
*30算术运算符是执行算术运算时的操作符,包括四则运算和取模运算符,如表7-5所示。表7-5 算术运算符符号作用举例解释+加A=x+yA的值为变量x与y之和-减B=x-yB的值为变量x与y之差*乘C=x*yC的值为变量x与y之积/除D=x/yD的值为变量x与y值商%取余数E=x%yE的值为变量x与y的余数31关系运算符用来对两个变量的大小进行判断的,如表7-6所示。32表7-6 关系运算符符号作用举例解释==相等x==y比较x与y变量的值是否相等,相等则结果为1,不相等结果为0!=不相等x!=y比较x与y变量的值是否相等,不相等则结果为1,相等则结果为0>大于x>y若x变量的值大于y变量的值,其结果为1,否则为0。<小于x<y若x变量的值小于y变量的值,其结果为1,否则为0。>=大于等于x>=y若x变量的值大于或等于y变量的值,则结果为1,否则为0。<=小于等于x<=y若x变量的值小于或等于y变量的值,则结果为0。逻辑运算符就是执行逻辑运算功能的操作符号,包括与(AND)、或(OR)、非(NOT),逻辑运算的最终结果为真(值为1)或假(值为0),如表7-7所示。33表7-7 逻辑运算符符号作用举例解释==相等x==y若x变量的值大于y变量的值,且y变量的值也大于z变量的值,其结果为真(值为1),否则为假(值为0)||或运算(x>y)||(y>z)若x变量的值大于y变量的值,或y变量的值也大于z变量的值,其结果为真(值为1),否则为假(值为0)!非运算!(x>y)若x变量的值大于y变量的值,其结果为真(值为1),否则为假(值为0)布尔“位”运算符与逻辑运算符比较相似,不同之处在于逻辑运算的最终结果为真或假,而布尔“位”运算符的结果是一个具体数据。布尔“位”运算符如表7-8所示。表7-8布尔“位”运算符34符号作用举例解释&与运算A=x&y变量A的结果为将x与y变量的每个位进行AND运算|或运算B=x|y变量B的结果为将x与y变量的每个位进行OR运算^异或运算C=x^y变量C的结果为将x与y变量的每个位进行XOR运算~取反运算D=~x变量D的结果为将x与y变量的每个位进行取反运算<<左移运算E=x<<n变量E的结果为将变量x值左移n位。>>右移运算F=x>>n变量F的结果为将变量x值右移n位。赋值运算符包括“=”运算符,还有算术运算符,逻辑运算符等,如表7-9所示。35表7-9 赋值运算符符号作用举例解释&==赋赋值值与GA&=x=x将G变量的值与变量x的值进行AND运算,其结果存入G变量中,功能将x变量的值赋给变量A中相当于G=G&x+|
=赋值加或BH+|==x将BH变量的值与x变量的值相进加行,OR和运存算存,到结变果量存B入当H中变,量功中能,相功当能于相当B于=HB=+Hx&x^-
=赋赋值值异减或CI^-=x将CI变量的值与x变变量量的的值值进相行减X,O差R运存算存,到结变果量存C当入中I变,量功中能,相功当能于相当C于=IC=+I^xx<*<==左赋移值赋乘值JD<*<==xn将DJ变变量量的的值值左与移x变n位量,的其值功相能乘与,J积=J存<<入n相D当变量当中,功能相当于D=D*x>/>==右赋移值赋除值KE>/>==xn将EK变量的值除右于移变n位量,x,其商功存能入与到K=变K量<<En当相中当,功能相当于E=E/x%=赋值取余F%=x将F变量的值除于x变量,余数存入F变量中,功能相当于F=F%x递增/递减运算符也是一种比较有效的运算符,包括自增与自减运算符,如表7-10所示。表7-10 递增/递减运算符符号作用举例解释+
+自加1x++将x变量的值自加1--自减1x--将x变量的值自减136运算符的优先级如表7-11所示。37表7-11 运算符的优先级优先级运算符或提示符解释81(、&
)布小尔括“号位”AND运算符92~^、!布取尔补“码位、”X反O相R运算符130+
+、|
--布自尔加“1位,”自O减R运1
算符141*、&/、&
%逻乘辑、运除算、符取A余N数D152+、||
-逻加辑、运减算符OR6<<、>>=、*=、/=、%=、+=、-=、左移、右移137<<=、>>=、&=、^=、|=<、>、<<=、>>=、==、!=赋值运算符关系运算符387.3.1循环指令7.3.239选择指令循环指令就是将程序流控制在指定的循环里,直到符合指定条件才结束循环,继续往下执行。Keil
C所提供的循环指令有for语句、while语句、do-while语句。}例如:}for(int
i=0;i<8;i++)for(int
x=100;x>0;x--)for(;;);123.前后计数条件循环循环dwfoohr-i语lwe句h语il是句e语一将句个判提很断供实条先用件执的放行计在再数语判循句断环之的,前功其,能格称,式为称如前为下条后:件条循件环循,环其,格其式格如式下如:下:
dwfoohri(l表{e(达表…式达…1式;表)达式2;表达式3){
……{
指……令指;令;[指br令[eba;rke]a;k];[…b…re…a…k];}…w…hile(表达式);40选择指令的功能是根据条件决定程序的流程,Keil
C所提供的选择指令有
if-else语句及switch-case语句。指令区域1;}else{……}else
if(表达…式…2)41{ 指令区域2;
}else if(表达式3)指令区域2;{ 指令区域3;
}else
{ 指令区域4;
}图7-2
if-else
条件判断多重选择流程图图7-1
if-else条件选择流程图1.条件选择if-的el多se重语条句件提判供断条语件句判如断下的,语其句流,程称图为如条图件7选-2所择示语。句,其格式(如下)与流程图(如图7-1):if(表达式)
i{f(表达式1){……指令区域1;
}2.多分支选择switch-case语句提供多重选择,就像是波段开关一样,称为多分支选择语句。这种选择方式不会有优先等级的问题,其格式如下,switch-case语句的流程图如图7-3所示。switch(表达式){case(常数1);{ 指令区域1;}break;case(常数2):{指令区域2;}break;……default:{指令区域n;}
break;}图7-3
switch-case多重选择流程图4243数组(array)是一种将同类型数据集合管理的数据结构,而指针(Pointer)是存放存储器地址的变量,因此,数组与指针可谓是数据管理的好帮手。组1.数组数若组不也知是道一数种组变的量大,小将可一不堆填相数同组数大据小形,态而的由变程量序,来
处以理一,个例相如同:的变量名称来表示。既然是一种变量,使用之前c就h得ar声st明rin,g其1[]声=明"w格e式lco如m下e:to
hua
dong
jiao
da
ligong数x据u类e
y型uan数"组名[数组大小]如例果如声明整一数个(含有int5)个或字浮符点的数数(组f:loacth)ar数L组PC,[5也];要指定这其个初数始组值包,括可L利P用C[大0]~括L号P实C[现4],等语5个句字如符下,:是字符的数组i,nt相N当um于[常6]说={的30“,2字2,3符3串,44”,55。,6但6}是;
Keil
C
没有“
字符串”若数要据定类义型多,维所数以组用,字可符以数按组如来下代形替式字:符串变量。数声据明类数型组的同数时组也名可[以数赋组初大值小,1如][数组大小ch2a]r……[数
L大P小C[n5]];="ABCD"如经:过上int述N声u明m后[3,][2L]P=C{{[100]=,1A1,},L{1P2C,1[13]}=,{B1,4,L1P5C}}[;2]=C,LPC[3]=D,LPC[4]="\0"。442.指针45执指行针以是上用语来句存后放,存储a变器量地的址地的址变就量被,放既入然p是tr1变指量针,变使量用。前当均然需,要这先些定操义作才主能要使是用针。对数组,通常会先取得数组的第一个元素的地址,如ptr1=&Num[0][0];数执据行类以型上语*句变后量,名N称u;m数组的首地址将被放入ptr1指针变量。若要将Num通[0常][0指]内针容都输采出用到整P数2口数,据可类执型行,例如要声明一个名为ptr的指针,语句如下:
iPn2t=*Nputrm;[0][0];或也以可指以针将变同量类的型方的式变实量现与以指上针操放作在,一语起句声如明下,:语句如下:
iPn2t=*ptrr1;*ptr2,a,b,c;同与理指,针若息要息将相关Nu的m运[1算][1符]的是内“容&”赋,值该给运P2算,符语的句功如能下是:取变量的地址,运算符可以将P2指=定Nu的m变[1量][1的];地址放入指针变量,以便后续操作,语句如下:p或t以r1=指&针a变;
量的方式实现以上操作,语句如下:P2=*(ptr1+3);46函数(Function)和中断子程序都属于子程序。也可以称函数为子程序,称中断子程序为中断函数。1.函数函数的结构与主程序的结构类似,不过函数还能传入自变量,其结构如下:void Sub_name(int
x){
……int i,
j
;/*关闭LED*/unsigned
char
LED;……LED=0xff;……
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 在学校举行的元宵节作文(8篇)
- 值得珍惜初二作文700字12篇范文
- 可溶性转铁蛋白受体及铁蛋白指数在儿童炎症性肠病铁缺乏症诊断中的应用
- 金属元素掺杂轻元素团簇的理论研究
- 科学实验中心教育项目计划
- 不同粒径下气力提升泵内多相流动特性研究
- 英语口语提升工作坊计划
- 智慧农村建设项目合同书
- 成人教育教师安全工作职责
- 探究肠道菌群和mTOR-Treg调节对五参汤抑制心梗后心衰小鼠心室重构的影响
- 无人机应用技术专业人才培养方案(中职)
- 科技成果-电解铝烟气脱硫脱氟除尘一体化技术
- YS/T 273.12-2006冰晶石化学分析方法和物理性能测定方法 第12部分:火焰原子吸收光谱法测定氧化钙含量
- GB/T 39171-2020废塑料回收技术规范
- 2015山东高考英语试题及答案
- GB/T 18964.2-2003塑料抗冲击聚苯乙烯(PS-I)模塑和挤出材料第2部分:试样制备和性能测定
- GA/T 1661-2019法医学关节活动度检验规范
- 他达拉非课件
- 资料交接移交确认单
- 风对起飞和着陆影响及修正和风切变完整版课件
- 大数据时代的互联网信息安全题库
评论
0/150
提交评论