还剩13页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
[4]3]
[4];p=a;p a>判断与否合法访问数组元素若是指针法访问,判断指针后跟的与否地址;若是下标法访问,判断下标有无越界>函数指针函数名即为函数的地址指针函数指针变量的定义类型名*变量名形参列表;如i.int*p;赋值指针变量二函数名;设有个函数其函数名为则要将该函数的ii.max,地址给的话只要执行如下语句即可p p=max;>指针数组指针数组的数组元素都是指针变量,是用来寄存变量的地址的,定义格式为类型名*变量名[数组长度];如血*p
[10];>指向指针的指针指针变量也是一种变量,故在内存中也有对应的一种地址,而要寄存指针变量的地址,就规定援于用来寄存指针变量的地址的指针变量,定义格式类型名**变量名;如可进行赋值int*pl;int**p2;inta=3;pl=a;p2=p则、和的值都是1;a*pl**p
23.
十四、宏定义>无参宏定义标识符值定义后,出现所定义的标识符的地方都将以定义#define时指定的值来替代#define M2+3main{int x;则的值为若想得到的成果是则定义时x=M*M;x2+3*2+3=112+3*2+3也写成这样#define M2+3注意#、标识符、值之间都要用空格隔开,且宏定义结尾不需加分号define>带参宏定义标识符参数表值#define#define Sx,y x*ymain{int a=3,b=4,c=5,d=6;此时会打印出printfa*b=%d\n”,Sa,b;a*b=12此时会打印出带参宏printfa+b*c+d=%d\rT,Sa+b,c+d;a+b*c+d=29,定义执行时是将这样一种体现式替代这样一种体现式替代a+b x,c+d y,因此进行的是的运算,而不是将的值给的Sa+b,c+d a+b*c+d a+b x,c+d值给然后再做这点跟函数调用传递参数是不一样样的y x*y,}>自定义类型名对已存在的类型名取一种外号typedef基本格式原类型名新类型名;i.typedef则等价于ii.typedef intINTEGER;int a,b;INTEGER a,b;则等价于即为一种有个元素的数组的iii.typedef int NUM
[10];intNUMa;a10数组名则等价于iv.typedef int*INTEGER;int*a,*b;INTEGER a,b;
十五、构造体,共用体,枚举类型>构造体构造体类型的定义及变量的定义i.构造体名struct{类型组员1;类型组员2;类型组员n;}变量名;如struct student{long num;char name
[10];int score
[4];定义类型时同步定义变量}stl;定义类型后,用类型名定义变量尚有一种struct studentst2;struct{long num;char name
[10];int score
[4];不给类型名,直接定义变量}st3;构造体变量所占字节数各组员各占字节数之和,如以上ii.stl,st2,st3的字节数皆为10+20+2*4=38构造体变量初始化「张三工iii.struct studenta={000170,75,80,85};构造体数组定义及初始化iv.struct studenta
[3]={{0001/,zhang,\89,90,91,92},{0002Jliu”,68,69,70,71},力{0003,157,58,59,60}};构造体变量组员的访问v.构造体变量名.组员名如
1.stl.num使用构造体类型的指针
2.*构造体指针名.组员或构造体指针名->组员名>struct student*st;st=stl;st-num^^st.num>共用体共用体类型的定义及变量的定义i.共用体名union{类型组员名1;•••类型组员名n;};变量的定义与构造体类似,也有三种措施union dataint i;char ch;float f;定义类型时同步定义变量}dl;定义类型后,用类型名定义变量union datad2;unionint i;char ch;float f;不给类型名,直接定义变量}d3;共用体变量所占字节数各组员所占字节数的最大值押上所ii.dl,d
2.d3占字节数皆为(单精度浮点型变量所占字节数最多为)
4.
4.共用体变量组员的访问iii.共用体变量名.组员名如
1.dLi使用共用体类型的指针
2.(*共用体指针名).组员或共用体指针名->组员名>或(*()上union data*dd;dd=dl;dd-i41共用体组员的值由于共用体各组员共用同一段内存区,故同一时刻iv.只有一种组员的值是对的的如,贝!此时的值就不dLi=5;dLch=%;j dl.i是了,而是其他值了,的值是5dLch>枚举类型枚举类型的定义枚举名{枚举元素i.enum名1,枚举元素名2,・..,枚举元素名n};枚举元素的值ii.默认值分别为、枚举元素的值也可在定义时重指定,
01.....对于没有指定值的元素,按次序加1如如值为enum weekday{sun=7,mon=l,tue,wend,thur,firi,sat};J sun7,mon值为值为值为值为值为值为1,tue2,wend3,thur4,fri5,sat6
十六、Turbo C的使用>菜单激活F10>菜单切换左右方向键在不一样菜单间切换,上下方向键在同一种菜单不一样选项间切换载入文献两种措施.找到源文献所在位置,直接将其拉到快1Turbo C捷方式上;
2.F3>运行程序ctrl+F9»看程序运行成果alt+F5>进入编辑状态菜单Edit F2>插入状态切换键Insert
一、常量>数字常量i.一般数字1,35,
2.7指数形式等价于注意©大小写皆可,前面的数字ii.
2.45e-
22.45*10-2e不能省,就算是也不能省,背面的数字一定要是整叁1长整型,单精度浮点型分别表达是长整型数iii.3235L,
32.5F3235据,是单精度浮点型左,若不写上则表达是整型,是
32.5L,F
323532.5双精度浮点型,大小写皆可L,F>字符常量i.一般字符常量用学〃号把一种字符括起来,如,A@转义字符常量一对单引号括起来并以开头的字符序列,如‘加(回ii.车)、为123,(8进制123对应的字符)J\x23(6进制23对应的字符)>字符串常量用一对双〃号把一种字符序列括起来,如,系统寄存字符串常量,“ABCef每个字符分派一种字节,各字符所占字节紧邻,并且字符串末尾会给再开一种字节里面放一种做为结束标志30,>符号常量定义格式符号常量名符号常量值,如#则定义了符号常#define defineN20量其值为注意符号常量名和符号常量值之间是用空格隔开,而不是写N,20,上二号,和符号常量名之间也有空格的#define>命名规则以数字,字母,下划线这三类字符构成,但为能以竽/或下划线开兴,而不能也数字开头,氏外不能将关键字做为标识符个关键字表在附32P365录B>变量名,函数名,符号常量名全都是标识符
三、变量>变量的定义格式类型名变量名;如定义了一种整型常量变量名是由人类随便定义的,符合命名规int a;a则的前提下,爱写啥就写啥因此什么或者函数名等所flag,cc,yl fun,find有是自定的用来做为名字而已,没有更尤其的意义>类型名整型,长整型用于寄存整数,只是数值范围不一样int long单精度浮点型双精度浮点型用于寄存实数,数值范围,精float double度不一样字符型用于寄存字符char>变量赋值,初始化定义的同步初始化int a=3;定义后在程序中进行赋值a=6*9;>变量的值只有在赋值操作时才会被变化,即将其放在等号左边时才会变化它的值,或自增自减操作:像并未变化的值,只是使用了的值a=5,a++,a--,a+3a a而已.>自增自减运算变量++,++变量,变量--变量使变量的值自增或自减11等价于变量=变量变量=变量+1-1放于变量前后效果的区别当自增自减运算做为体现式的一部分时,++,一放在变量前面是先自增自减再使用变量的值,放在变量背面则是先使用变量的值,再自增自o如()则相称于执行了()这样的x=3;printf“%d”,++x;++x;printf“%d”,x;操作因此打印出4再如x=3;printf(%d”,x++);则相称于执行了printf(%d”,x);x++;这样的操作,则打印出当然最终的值还是3,x4
四、体现式>运算符和运算对象一种运算符均有若干个运算对象,如+必然要跟两个运算对象才能进行加法运算语言里称需要跟个运算对象的运算符为元运算符3+5o Cn n一元运算符有!,(类型名)二元运算符有%(求余),=,+=,-=,*=,/=,%=,<,>,<=,>=,=二(等于),!二(不等于),(且),(或)11多元运算符有,>运算符的优先级和结合性优先级同一种运算对象左右两边若同步有两个运算符,则这两个运算符i.优先级高的先进行运算结合性若同一种运算对象左右两边的两个运算符优先级相似,则根据结ii.合性判断先进行哪个运算,自左自右结合性的先算左边的运算符,自右自左的先算右边的运算符各运算符的优先级和结合性见附录iii.P365C>强制类型转换格式(类型名)体现式将后跟的体现式的值的数据类型转换为与圆括号内的类型名一致的类型注意类型名一定要用()括起来>算术体现式算术运算符%(求余)i.由算术运算符加上运算对象构成算术体现式,如ii.3+3*6-9/2值跟我们小课时学的同样,就是体现式的计算成果iii.整数除以整数成果取整数部分,故得到的值是iv.1/30成果为想想小学除法,求余得到的是余数不是商v.5%32,>赋值体现式赋值运算符=,+=,-=,*=,/=,%=i.赋值体现式变量二体现式,如注意番号ii.x=3+6,x+=6-9,x+=x*=3+4左边只能是变量复合赋值运算符的运算以/=为例体现式等价于(体现式)iii.x/=x=x/值=号左边的变量最终的值iv.关系体现式关系运算符,,=,=,==(等于),!=(不等于)i.由关系运算符加上运算对象构成关系体现式,如〉=ii.34,2==a值满足对应运算符所指定的关系的值为否则为iii.1,0逻辑体现式逻辑运算符(且),||(或)」(非)i.由逻辑运算符加上运算对象构成逻辑体现式,如ii.34,x||!y值满足对应运算符所指定的关系的值为否则为iii.1,进行〃或运算时,若左边的体现式值为则不再对右边的体现式进行运iv.II1,算进行且运算时,若左边的体现式值为则不再对右边的体现v.0,式进行运算逗号体现式逗号运算符,i.用逗号将多种体现式持续起来构成逗号体现式,如ii.3+4,a=9,8*a值构成逗号体现式的各个体现式中的最终一种的值,如上例为iii.8*a题目P7—11-17P8—18〜33
五、输入输出函数(“格式控制串”,变量地址表列);scanf如scanf(%d%c%d[a,ch,b);scanfC%4f\x);注意格式控制串可控制截取顾客输入的前几种字符给变量,但不能控制输i.入几位小数给变量,如不能写成scanf(“%
4.2工x);第二个参数给的是地址,即要么是+变量名或数组元素名的形式,要ii.么就是一种数组名或指针变量名,如int*p,a;p=a;scanf(%d”,p);考试时注意看题目给你写好的的格式iii.scanf若其格式控制串内各格式符用“,”隔开如_
1.(成)那输入时也要用逗号隔开,如此例输scanf“%d,%c,%d”,a ch,b;入时应3,+,5若是这种格式)则输入时应
2.scanfC%d%d”,a,b;35;若是这种格式()则输入时应若写成
3.scanf“%d%c%d”,a,ch,b;3+5,则@=仆=(空格),二任意值(自己上机运行看当作果)3+53b(“格式控制串输出项表列);printf H如日0@1*=
7.54「血1(“%
8.2仔刈;此处的意思是将*打印出来,且占8歹保留两位小数自己上机运行看看效果U,常用格式符汇总输入输出整型数据,输入输出长整型数据i.%d%ldii.%c输入输出字符型数据iii.%f输出单(双)精度浮点型数据,输入单精度型数据%If输入双精度型数据iv.%s输入输出一种字符串,用printf输出字符串时,输出项书写时可为字符串常量,或字符数组名如或printf%s”JhelkT;charstr[l O]二hello”;printf“%s”,str;v.%u输入输出无符号整型,%o输入输出八进制数,输入输出十六进制数%x:getchar;函数调用后返回顾客输入的一种字符,故需再定义一种变量来寄存这个字符,虽然用时应char c;c=getchar;意思就是接受顾客输入的一种字符,并将其赋值给变量c字符常量或字符变量名;putchar如charc=A;putcharc;或putcharA;都会向屏幕输出字符A
六、C语言的语句体现式语句由体现式末尾加上分号构成函数调用语句由函数调用体现式加上分号构成空语句;选择构造语句语句语句if switch循环语句语句语句语句for while do while复合语句用花括号{}将以上任意语句括起来构成一条复合语句
七、C程序的基本构造void main申明部分用来定义变量和申明自定义函数的原型,需以“;”结尾,如intx;执行语句部分:第六点里简介的多种语句,如x=3;printf%d”,x;函数外可写自定义函数如mainint maxreturn0;
八、选择构造语句体现式语句语句if1else2假如语句的圆括号内的体现式值为非则执行语句值为则执行语if0,1,句2o体现式可为任意体现式,语句执行的实质是判断体现式的值与否为i.if来决定执行语句还是语句此外请在此处体现严重关切,不管是高手12还是菜鸟常常会把判断两个数相等的符号写成了一种等号“二”成为了赋值运算,这样的写法不会引起编译错误,但成果会与原意大大不一样,因此考试前请再三提醒自己语句和语句都只能是一种语句,若要跟多条语句,牢记用一对{}ii.12括起来,构成复合语句;也不要随便在括号后加,因”构成一条空语句,这会使背面跟的语句不再属于语句的1if构成部分语句的三种构造iii.if单边(体现式)语句
1.if双边(体现式)语句语句
2.if1else2多层(重点掌握)
3.(体现式)语句if11(体现式)语句else if22(体现式)语句else if33•••语句else n条件运算符体现式体现式:体现式123若体现式的值非则取体现式的值做为整个体现式的值,否则取体现式10,23的值为整个体现式的值如该体现式的值为341:22语句switch(体现式)switch(体现式语句case1case体现式2语句•••case体现式n语句语句default:}语句执行过程先计算体现式的值,然后判断该值与体现式到体现式中的1n哪个相等,若与体现式的值相等,则执行体现式后的所有语句,当碰到;i ibreak语句时结束整个语句的执行体现式到体现式的值都不相等的状况switch1n下执行后跟的语句每个后可跟多条语句default case
九、循环构造循环语句forfor(体现式1;体现式2;体现式3)循环体语句语句执行过程计算体现式
1.1判断体现式的值与否为若为语句执行结束,若不为进入环节
2.20,0,0,3执行循环体语句(需注意的奏猾家於唐万能有一期语凯若要包括多种语
3.9句要用一对{}括起来,构成一条复合语句,此处也不要随便加上“;因一种”可构成一条空语句,这会使得背面真正的循环体语句不属于循for环语句的部分)进入环节4计算体现式然后重新进入环节
4.3,2循环语句循环语句whiledo while(体现式)循环体语句i.while执行过程判断体现式的值与否为非若是进入环节否则结束语句执行
1.0,2,执行循环体语句,重新回到环节
2.1循环体语句(体现式);ii.dowhile执行过程执行循环体语句,进入环节
1.2判断体现式的值与否为非
①若是重新回到环节否则结束语句执行
2.1,这里要注意的地方跟语句同样,即循环体语句只能有一种语句,若要包括多for种语句要用一对{}括起来,构成一条复合语句,此处也不要随便加上“;\因一种”可构成一条空语句,这会使得背面真正的循环体语句不属于循while环语句的部分,此外循环的体现式后是要加”的do whiIewhiIe语句放在循环体内实现的功能是结束其所在的那层循环的执行break
十、数组定义格式数据类型数组名[整型常量];如定义了一种整型数inta
[10];组,数组名为这个数组具有个元素a,10引用数组元素格式数组名[下标]牢记下标值从开始下标可为常量,体0现式,变量等,如inti=3;a
[0]=5;a[3*2]=9;a[i]=7;初始化数据类型数组名[整型常量]={数据表列};将数据表列的各个值依次赋值给数组的各个元素如inta
[5]={0,l,2,3,4};则数组a各元素a
[0]到a
[4]的值分别为0,1,2,3,4遍历数组元素数组定义后,我不能对数组进行整体的操作,如不能用这样的操inta
[10];a=3作将数组的各元素都赋值为3;而只能一种一种元素的进行赋值,如a
[0]=3;a[l]=3;a
[2]=
3...a
[9]=3;当然此时我们就可以借助于一种for循环来控制下标的变化从而对数组的各个元素进行赋值fori=0;i10;i++a[i]=3;当然这只是用循环遍历数组各元素的最简朴的例子,一般考试考的是找出for数组元素的某种特性的极值,例如最大值,最小值,或对数组各元素进行排序,这时我们就可以使用循环来遍历数组的各元素,然后在目前循环中得到一for种元素再对其进行处理如时访问到的元素是你就可以问问它,你是i=2a
[2],不是最小值啊整型数组整型数组里的各个元素寄存的是整数int a
[10];a
[3]=3;字符型数组char str
[20];字符型数组里的各个元素寄存的是字符str
[3]=5A9;
十一、字符串函数字符数组名或字符指针变量;一gets如char str
[10],*str2;str2=str;则gctsstr;或gctsstr2;都是接受顾客输入的字符串如存入到字符数组中“ABC”str字符数组名或字符指针变量或字符串常量;puts如char str
[10]=china”;char*str2;str=str2;则putsstr;或putsstr2;或都会在屏幕上打印出putschina china字符数组名或字符指针变量;字符串测长函数strlenchar str
[20]=5,hello world!”;得出的成果是的值为int len;len=strlenstr;len12字符串的地址,字符串的地址;strcat12将字符串的内容连接到字符串的尾部21char str1
[20]=”ABC”,str2
[20]=xyz»;strcatstrl,str2;则程序运行的成果是内寄存的字符串变为当然寄存的字strl ABCxyz,str2符串还是xyzo字符串的地址,字符串的地址;strcmp12比较串和串哪个比较大比较大小的根据是,两个字符串从左往右对12应位置上第一种不相等的字符码值之差ASCIIchar strl
[20]=ABCE”,str2
[20]=ABDE”;inti;i=strcmp strl,str2;第一种不相等的字符为的和的,而两者相差strl Cstr2D-1,故做为函数执行的成果返回到被调用的位置,该位置位于赋-1strcmp值体现式内,故将其值赋值给即此时的值就是i,i-
1.字符串的地址,字符串的地址;strcpy12将字符串的内容复制到字符串内21char str1
[20]=ABC”,str2
[20]=xyz”;strcpystrl,str2;此时strl的内容为xyz,当然str2的内容没变此时的内容又变成了strcpystrIJuvw;strl“uvw
十二、函数函数定义函数类型函数名形式参数列表内部变量定义和申明部分执行语句如int maxint xint y9{int z;z=xyx:y;returnz;注意点函数类型是指返回值的类型,即要与语句后跟的体现式的值的类型一致L return若函数类型为则阐明该函数无返回值,即函数体里不能出现语句void return.形式参数列表里定义的变量要记得给它们指定类型,扶豆假如同步要定义多种,2应在每个前面都分别指定类型名,而不能写成intx,y;,函数体里能写的语句跟函数同样,在开头可定义所需要的变量,背面跟上3main一堆执行语句>函数调用流程以上面的函数为例,在函数进行调用mainvoid main{int a,b,c;scanf,a,b;printf%d”,max a,b;或c=maxa,b;printf“%d”,c以上两种措施都会在屏幕中打印出间的较大值a,b调用函数的格式函数名实际参数列表;调用的时候像什么函数类型,形式参数的类型就不要加上去了中就是函数名,写上变量名是实际参max a,b max a,b数列表,执行这个调用语句时,会先把的值给对应位置的形式参数即执行了a,b x二二这样的操作,然后开始执行函数的函数体的语句当函数体里a,y bmax max执行到一种语句时,则函数结束执行,将后的体现式的值返回给return maxreturn函数调用函数的那个位置,即若上面则后的体main maxa=3,b=5maxa,b return现式的值应当是也就是说执行完后把返回到调用的位置可当作5max5max printf,5;或另一种解法的c=5
十三、指针>指针变量的申明类型名*指针变量名;>通过指针变量访问它所指向的一般变量的值先将一般变量的地址赋值给指针变量,再通过指针运算符*得到一般变量的值int*p,x,y;x=3;p=x;则会打印出即的值printf%d”,*p;3xy=*P;则y的值变为3*p=5;则x的值变为5>指针变量加上减去一种位移的效果若指针变量存入的是数组元素的地址,的其加一减一得到的是那个数组元点下一种或前一种元素的地址int a
[10];p=a
[3];得到的是的值*p a
[3]若p++;此时p寄存的是a
[4]的地址a
[4];*p得到的就是a
[4]的值或p--;此时寄存的是⑵的地址得到的就是⑵的值p aa
[2],*p a>行指针重要是对于二维数组来说的,二维数组每行均有自己的地址,第行地址用i.数组名表达,第i行地址为数组名+i;而想要得到二维数组里一种元素的地址,必需先得到其所在行的地址,然后再由那个地址得到元素的地址,例如说inta
[3]
[4];定义了一种二维数组,该二维数组第行的地址为a,第行的地址为第行的地址为想从行的地址得到元素的地址,1a+1,2a+2,需在行地址前加上指针运算符“*,即*就是第行首个元素的地址即a0a
[0]
[0]的地址,而a
[0]⑵的地址就是在a
[0]
[0]的地址基础上加上位移量2,即*然后想得到这个元a+2,a
[0]
[2]。
个人认证
优秀文档
获得点赞 0