c,个人总结.doc

上传人:Wo****Z 文档编号:30421179 上传时间:2022-08-06 格式:DOC 页数:23 大小:31.50KB
返回 下载 相关 举报
c,个人总结.doc_第1页
第1页 / 共23页
c,个人总结.doc_第2页
第2页 / 共23页
点击查看更多>>
资源描述

《c,个人总结.doc》由会员分享,可在线阅读,更多相关《c,个人总结.doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、c,个人总结C总结C总结1、define宏定义的作用范围仅限于当前文件即file1.c中定义#definePI3.14在file2.c中该宏定义不起作用;通过将#definePI3.14定义在mon.h中file1.c和file2.c分别#include“mon.h”的方式该宏定义在file1.c和file2.c中都起作用。typedef是数据类型的定义注意不简单的字符串替换typedefintsize;t2、变量包括数据类型存储类型作用域|基本型int|整型|短整型shortint|长整型longint|无符号型unsigned|字符型char|基本数据类型|实型(浮点型)|单精度型floa

2、t|双精度型double|长双精度longdouble|枚举数据类型|数组类型|构造类型|结构体类型|共用体类型|指针类型|空类型|动态存储|自动变量auto(未加static声明的局部变量)初值不确定存储类型|静态存储()|全局变量|用static声明的局部变量初值为0|寄存器变量register|局部变量|寄存器变量register|外部变量|用extern声明从声明处到文件结束作用域3、十进制(无前缀)八进制(023以0前缀不能出现负数)十六进制(0x,0_)0_A5Lu表示十六进制无符号长整数A5其十进制为1654、运算符:(先执行优先级同优先级执行结合性同级运算符的结合性相同)算术运

3、算符:(左)+、-、_、/、%(求余或求模)、+、-关系运算符:(左),<,=,=,<=,!=逻辑运算符:(左)&;&;|!位操作运算符:(左)参与运算的量按二进制的位运算&;|,(或异),赋值运算符:(右)简单赋值=复合算术赋值(+=,-=_=/=,%=)复合位运算赋值(&;=|=,<<=,=)条件运算符:(右)这个三目运算符(?:)逗号运算符:(左)用于把若干个表达式组合成一个表达式()指针运算符:(左)_&;求字节数运算符:(左)sizeof特殊运算符:(左)()下标成员()注:也有规定C语言中右结合的运算符有:(1)!逻辑非运算符;按位取反运算符;+前缀增量运算

4、符;-前缀减量运算符;+正号运算符;-负号运算符;(类型)类型转换运算符;_指针运算符;&;地址运算符;sizeof长度运算符(2)?:条件运算符(3)=、+=、-=、_=、/=、%=、&;=、=、|=、=、=赋值运算符5、优先级一、数组下标()(表达式)函数名(形参).成员选择(对象)对象.成员-成员选择(指针)对象指针-成员名二、-负号运算符-表达式按位取反运算符表达式+自增运算符-自减运算符_取值运算符_指针变量&;取地址运算符&;变量名!逻辑非运算符!表达式(类型)强制类型转换(数据类型)表达式Sizeof长度运算符sizeof(表达式)三、/除表达式/表达式_乘表达式_表达式%余数(

5、取模)整型表达式%整型表达式四、+加表达式+表达式-减表达式-表达式五、左移变量<<表达式右移变量表达式六、大于表达式表达式=大于等表达式=表达式<小于表达式<表达式<=小于等于表达式<=表达式七、=等于表达式=表达式!=不等于表达式!=表达式八、&;按位与九、按位异或十、|按位或十一、&;&;逻辑与十二、|逻辑或十三、?:条件运算符十四、十五、,逗号运算符表达式&;表达式表达式表达式表达式|表达式表达式&;&;表达式表达式|表达式表达式1?表达式2:表达式36、getchar函数的功能是从键盘上输入一个字符。charc;c=getchar;/将键盘输入的一

6、个字符赋值给字符变量cputchar函数是字符输出函数其功能是在显示器上输出单个字符printf函数%d(十进制输出带符号整数)“%5d”要求输出宽度为5前补0%ld(十进制长整型)%c(按字符型输出)%s(字符串)%o(八进制输出无符号整数不输出前缀0)%_x(十六进制输出无符号整数不输出前缀0x)%u(十进制形式输出无符号整数)%f(以小数形式输出单双精度实数)%eE(以指数形式输出单双精度实数)%Gg(以%f%e中较短的输出宽度输出单双精度实数)%p以十六进制输出地址7、break:跳出switch,while,do-while而continue结束单次循环8、Switch最后一句def

7、ault:9、语言允许用字符串的方式对数组作初始化赋值charc=“Cprogram”;charc=“Cprogram”;此时会将0存入数组#include“stdio.h”intmaincharst16,st26,st36,st46;printf(“inputstring:n”);scanf(“%s%s%s”,st1,st2,st3);printf(“%s%s%sn”,st1,st2,st3);gets(st4);puts(st4);return0;10、如果被调函数的返回值是整型或字符型时可以不对被调函数作说明而直接调用。这时系统将自动对被调函数返回值按整型处理。例8.2的主函数中未对函数

8、s作说明而直接调用即属此种情形。2)当被调函数的函数定义出现在主调函数之前时在主调函数中也可以不对被调函数再作说明而直接调max函数的函数说明intmax(inta,intb)。3)如在所有函数定义之前在函数外预先说明了各个函数的类型则在以后的各主调函数中可不再对被调函数作说明。11、指针:char_pc;pc=“CLanguage”;/char_pc=“CLanguage”;指向数组的指针变量也可以带下标如pi与_(p+i)等价指针变量可以实现本身的值的改变。如p+是合法的;而a+是错误的。因为a是数组名它是数组的首地址是常量。相对于二维数组aa0_(a+0)_a&;a00是相等的a+1,a

9、1,_(a+1),&;a10是等同的&;ai和ai也是等同的字符串指针:mainconstchar_string=”IloveChina!”;/_注意constprintf(“%sn”,string);字符串指针变量的定义说明与指向字符变量的指针变量说明是相同的。只能按对指针变量的赋值不同来区别。对指向字符变量的指针变量应赋予该字符变量的地址。如:charc,_p=&;c;表示p是一个指向字符变量c的指针变量。而:char_s=“CLanguage”;则表示s是一个指向字符串的指针变量。把字符串的首地址赋予s。对字符串指针方式char_ps=“CLanguage”;可以写为:char_ps;p

10、s=“CLanguage”;而对数组方式:staticcharst=“CLanguage”;不能写为:charst20;st=“CLanguage”;而只能对字符数组的各元素逐个赋值。12、函数指针变量int(_pf);表示pf是一个指向函数入口的指针变量该函数的返回值(函数值)是整型。13、指针型函数int_ap(intx,inty)14、指向二维数组的指针变量int(_p)3;表示一个指向二维数组的指针变量。该二维数组的列数为3或分解为一维数组的长度为3。15、指针数组int_p3表示p是一个指针数组有三个下标变量p0p1p2均为指针变量16、p=(int_)=0xffffff;把十六进制

11、数强制转换成int_赋值给指针P17、#include“stdio.h”voidf(int_);/说明指向指针的指针intmaininti=5,_p;p=&;i;printf(“%p”,p);/以十六进制输出I的地址f(&;p);printf(“%p”,p);/输出改写后的地址return0;voidf(int_p)_p=(int_)0_10000;/将指针内存储的指向i的地址改写成十六进制1000018、struct定义结构体structdinta;intb;b;/定义了d类型的结构体其中b是此类型变量structd_p;/定义了一个指d类型的指针b.a或是p-a这两种方法访问单个19、链表

12、头结点首结点?尾结点头结点:与首结点数据结构一样头指针:头20、typedefstructaainta;Structaa_p;bb,_c;/bb可以代替structaa,c等价structaa_21、C语言分6类词汇标识符、关键字、运算符、分隔符、常量、注释标识符包括(变量名、函数名标号)字符串函数Strcpy(char_dest,constchar_src);将src中的全部包括0复制到dest中dest要大到能容下src.长度并返回dest的地址scanf以空格为结束符realloc(p,20);将指向的堆内存增加到字节可能会得到新的地址并删除原来的地址。Calloc(10,type)分配

13、个type大小的空间并初始化为memcpy(p+5,arr,sizeof(arr):将arr中的前sizeof(arr)复制到p+5位置。c语言关键字个人总结由ANSI标准定义的C语言关键字共32个:有这么32个:autodoubleintstructbreakelselongswitchcaseenumregistertypedefcharexternreturnunionconstfloatshortunsignedcontinueforsignedvoiddefaultgotosizeofvolatiledoifwhilestaticauto声明变量为一般形式的变量。其实我们平时用的大部

14、分变量都是这种类型。break强行中断语句。一种用法是在switch语句中扮演将case中断的角色另一个用法是扮演强迫一般循环(for,while,dowhile)语句中断。case见switch语句说明。char声明一个变量为字符型。占1个字节表示256个不同的值。在C语言系统中这些值是根据ASCII码排列的包含小写字母大写字母数字标点符号及其它一些特殊符号const声明一个值为常量。一旦声明后这个值在整个程序中都不会变化,直到程序结束。continue和break语句类似但continue令循环重新回到测试位置而忽略continue和循环终止之间的程序语句。default见switch的说

15、明。do与while连用组成循环语句。它与for和while的不同在于:for,while循环将条件放在开始而do.while则把条件放在后面判断循环体是否结束。格式:do循环体while(条件表达式);double声明一个变量为双精度浮点型。占4个字节可表示16位有效数字。else见if的说明。enum枚举数据类型标识符externfloat声明一个变量为浮点型。占4个字节可表示8位有效数字。for循环控制标识。格式为:for(表达式1;表达式2;表达式3).语句.它常用来控制指定次数的循环如:for(i=0;i<10;i+)printf(“%d”,i);便可循环10次。注意:括号中的

16、3个表达式任何一个都可省略但分号不可省略。goto无条件跳转语句。好的结构化程序应尽量避免使用此语句因为它会破坏程序的结构性和可读性。调用语法:gotolabel;其中label为位置标识即告诉goto语句要跳到哪儿。label后面要加上冒号。if判断语句标志。格式为:if(条件表达式).语句.它常和else连用用于选择执行一个语句或一组语句。格式为:if(条件表达式).语句.else.语句.int声明一个变量为整型。占2个字节最大表示范围:-32768到32767(十进制)。long声明一个变量为长整型。长整型变量占4个字节最大表示范围:-2147483648(十进制)到2147483647

17、(十进制)。register将所声明的变量放在寄存器中这样可加快程序的速度。如果寄存器内没有足够的空间系统便会在内存中分配auto变量给你。通常此命令对设计操作系统的程序员有用对一般程序员用处不大。特别的,turboc2.0从来也不会将变量放到寄存器中。当你用register声明一个变量后。他自动将它放到内存中。return返回结果标识符。常用在子函数中用于返回所要得到的值。也可用于main函数中:main.return0;有的程序员习惯于这种形式。short声明一个变量为短整型。短整型占2个字节最大表示范围:-32768到32767.signedsizeof计算变量的长度。用法:sizeof

18、(变量类型);static声明一个变量为局部静态变量。struct结构数据类型标识符。switch判断语句标识符。主要用于有很多可能的结果的情况一般必须和case语句连用还常与default连用意义是若case中的条件都不成立就执行default后的语句。格式:switch(变量)case条件1:.语句.break;case条件2:.语句.break;.default:.语句.break;typedefunion联合数据类型标识符。unsigned声明一个变量为无符号型。格式:unsigned变量类型变量名称;如:unsignedinta;void声明变量或函数为无值型的。比如很多程序员习惯将

19、main函数声明成void型。即:voidmain.volatile声明一个变量为可能意外变化的量(相对于const而言)。while循环控制标识符和for基本相同但不如for表达式丰富。具体用那一个通常看个人习惯特殊情况下用其中一个比另一个简洁一些。格式:while(条件表达式).语句.如:while(!kbhit)printf(“anykeyforquitn”);其实随着慢慢的学习自己就把他们记住了。笔者语录:哥是android高手程序猿。c语言个人总结C语言总复习C六月奋战CC语言大家一起加油啦!总体上必须清楚的:?1)程序结构是三种:顺序结构,循环结构(三个循环结构),选择结构(if和

20、switch)?2)读程序都要从main入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。?3)计算机的数据在电脑中保存是以二进制的形式.数据存放的位置就是他的地址.?4)bit是位是指为0或者1。byte是指字节,一个字节=八个位.?5)一定要记住二进制如何划成十进制。?概念常考到的:?、编译预处理不是C语言的一部分不再运行时间。C语言编译的程序称为源程序它以ASCII数值存放在文本文件中。?、每个C语言程序中main函数是有且只有一个。?、在函数中不可以再定义函数。?、算法的是一定要有输出的他可以没有输入。?、break可用于循环结构和switch语句。?、逗号运算符的级别最

21、低。?第一章?1)合法的用户标识符考查:?合法的要求是由字母数字下划线组成。有其它元素就错了。?并且第一个必须为字母或则是下划线。第一个为数字就错了。?关键字不可以作为用户标识符号。maindefinescanfprintf都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了所以不是关键字。?2)实型数据的合法形式:?2.333e-1就是合法的且数据是2.33310-1。?考试口诀:e前e后必有数e后必为整数。.?3)字符数据的合法形式::?'1'是字符占一个字节“1”是字符串占两个字节(含有一个结束符号)。?'0'的ASCII数值表

22、示为48'a'的ASCII数值是97'A'的ASCII数值是65。?4)整型一般是两个字节,字符型是一个字节双精度一般是4个字节:?考试时候一般会说在16位编译系统或者是32位系统。碰到这种情况不要去管一样做题。掌握整型一般是两个字节,字符型是一个字节双精度一般是4个字节就可以了。5)转义字符的考查:?在程序中inta=0x6d是把一个十六进制的数给变量a注意这里的0x必须存在。?在程序中inta=06d,是一个八进制的形式。?在转义字符中x6d才是合法的0不能写并且x是小写。?141是合法的0是不能写的。?108是非法的因为不可以出现8。?6)算术运算符号的优

23、先级别:?同级别的有的是从左到右有的是从右到左。?7)强制类型转换:?一定是(int)a不是int(a)注意类型上一定有括号的。?注意(int)(a+b)和(int)a+b的区别。前是把a+b转型后是把a转型再加b。?8)表达式的考查:?是表达式就一定有数值。?赋值表达式:表达式数值是最左边的数值a=b=5;该表达式为5常量不可以赋值。?自加、自减表达式:假设a=5+a(是为6)a+(为5);?运行的机理:+a是先把变量的数值加上1然后把得到的数值放到变量a中然后再用这?个+a表达式的数值为6而a+是先用该表达式的数值为5然后再把a的数值加上1为6再放到变量a中。进行了+a和a+后在下面的程序

24、中再用到a的话都是变量a中的6了。考试口诀:+在前先加后用+在后先用后加。?逗号表达式:优先级别最低;表达式的数值逗号最右边的那个表达式的数值。?(234)的表达式的数值就是4。?9)位运算的考查:?会有一到二题考试题目。?总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。?例1:chara=6,b;?b=a2;这种题目的计算是先要把a的十进制6化成二进制再做位运算。?例2:一定要记住?例3:在没有舍去数据的时候<<左移一位表示乘以2;右移一位表示除以2。?10)018的数值是非法的八进制是没有8的逢8进1。11)%符号两边要求是整数。不

25、是整数就错了。?12)三种取整丢小数的情况:?、inta=1.6;?、(int)a;、第二章?1)printf函数的格式考查:?%d对应整型;%c对应字符;%f对应单精度等等。宽度的左对齐等修饰。?%ld对应longint;%lf对应double。?2)scanf函数的格式考察:?注意该函数的第二个部分是&;a这样的地址不是a;Scanf(“%d%d%_d%d”,&;a,&;b,&;c);跳过输入的第三个数据。?3)putchar,getchar函数的考查:?chara=getchar是没有参数的从键盘得到你输入的一个字符给变量a。?putchar(y)把字符y输出到屏幕中。?4)如何实现两个

26、变量xy中数值的互换(要求背下来)?不可以把x=y,y=x;要用中间变量t=x;x=y;y=t。?5)如何实现保留三位小数第四位四舍五入的程序(要求背下来)?这个有推广的意义注意x=(int)x这样是把小数部分去掉。第三章?特别要注意:c语言中是用非0表示逻辑真的用0表示逻辑假的。?1)关系表达式:?表达式的数值只能为1(表示为真)或0(表示假)?当关系的表达是为真的时候得到1。如98这个是真的所以表达式的数值就是1;?2)逻辑表达式:?只能为1(表示为真)或0(表示假)?a)共有&;&;|!三种逻辑运算符号。?b)!&;&;|优先的级别。?c)注意短路现象。考试比较喜欢考到。?d)要表示x是

27、比0大比10小的方法。0<x<10是不可以的(一定记住)。是先计算0<x得到的结果为1或则0;再用0或1与10比较得到的总是真(为1)所以一定要用。(0<x)&;&;(x<10)表示比0大比10小。?3)f语句?else是与最接近的if且没有else的相组合的。?4)条件表达式:?表达式1?表达式2:表达式3?注意是当非0时候是表达式2的数值当为0是就是表达式2的数值。?考试口诀:真前假后。?5)switch语句:?a)一定要注意有break和没有break的差别书上(34页)的两个例子没有break时候只要有一个case匹配了剩下的都要执行有break则是直接跳

28、出了swiche语句。?b)switch只可以和break一起用不可以和continue用。第四章?1)三种循环结构:?a)for();while;do-while三种。?b)for循环当中必须是两个分号千万不要忘记。?c)写程序的时候一定要注意循环一定要有结束的条件否则成了死循环。?d)do-while循环的最后一个while;的分号一定不能够丢。(当心上机改错)?2)break和continue的差别?记忆方法:?break:是打破的意思(破了整个循环)所以看见break就退出真个一层循环。?continue:是继续的意思(继续循环运算)但是要结束本次循环就是循环体内剩下的语句不再执行跳到

29、循环开始然后判断循环条件进行新一轮的循环。?3)嵌套循环?就是有循环里面还有循环这种比较复杂要一层一层一步一步耐心的计算一般记住两层是处理二维数组的。?4)while(c=getchar)!=n)和while(c=getchar!=n)的差别?先看a=3!=2和(a=3)!=2的区别:?(!=号的级别高于=号所以第一个先计算3!=2)第一个a的数值是得到的1;第二个a的数值是3。?考试注意点:括号在这里的重要性。第五章?函数:是具有一定功能的一个程序块;?1)函数的参数返回数值(示意图):?main?inta=5,b=6,c;?c=add(a,b);?printf(“%d”,c);?调用函数?

30、a,b是实参?整个函数得到一个数值就是?Add函数的返回数值。?intadd(intx,inty)?intz;?z=x+y;?returnz;?被调用函数?xy是形式参数?函数返回数值是整型z就是这个add函数计算后得到的结果就是函数返回给主程序的返回数值。?程序是在从上往下顺序执行当碰到了函数add后把ab的数值穿给调用函数程序暂时中断等待返回数值。当得到了返回数值后再顺序的往下执行?2)一定要注意参数之间的传递?实参和形参之间传数值和传地址的差别。(考试的重点)?传数值的话形参的变化不会改变实参的变化。?传地址的话形参的变化就会有可能改变实参的变化。?3)函数声明的考查:?一定要有:函数名

31、函数的返回类型函数的参数类型。?不一定要有:形参的名称。第六章?指针变量的本质是用来放地址而一般的变量是放数值的。?int_p中_p和p的差别:?_p可以当做变量来用;_的作用是取后面地址p里面的数值?p是当作地址来使用。?_p+和(_p)+的之间的差别:改错题目中很重要?_p+是地址会变化。?(_p)+是数值会要变化。三名主义:(考试的重点)?数组名:表示第一个元素的地址。数组名不可以自加他是地址常量名。(考了很多次)函数名:表示该函数的入口地址。?字符串常量名:表示第一个字符的地址。第七章?1一维数组的重要概念:?对a10这个数组的讨论。?、a表示数组名是第一个元素的地址也就是元素a10的

32、地址。?、a是地址常量所以只要出现a+或者是a=a+2赋值的都是错误的。?、a是一维数组名所以它是列指针也就是说a+1是跳一列。对a33的讨论。?、a表示数组名是第一个元素的地址也就是元素a10的地址。?、a是地址常量所以只要出现a+或者是a=a+2赋值的都是错误的。?、a是二维数组名所以它是行指针也就是说a+1是跳一行。?、a0、a1、a2也都是地址常量不可以对它进行赋值操作同时它们都是列指针a0+1a1+1a2+1都是跳一列。?、注意a和a0、a1、a2是不同的它们的基类型是不同的。前者是一行元素后三者是一列元素。?二维数组做题目的技巧:?如果有a33=1,2,3,4,5,6,7,8,9这

33、样的题目。?步骤一:把他们写成:第一列第二列第三列a0123第一行?a1456第二行?a2789第三行?步骤二:这样作题目间很简单:_(a0+1)我们就知道是第一行的第一个元素往后面跳一列那么这里就是a01元素所以是。?_(a1+2)我们就知道是第二行的第一个元素往后面跳二列。那么这里就是a元素所以是6。?一定记住:只要是二维数组的题目一定是写成如上的格式再去做题目这样会比较简单。?数组的初始化一维和二维的一维可以不写二维第二个一定要写?inta=12合法。inta4=234合法。但inta4=234非法。?二维数组中的行指针?inta;其中a现在就是一个行指针a+1跳一行数组元素。搭配(_)p2指针?a0a1现在就是一个列指针。a0+1跳一个数组元素。搭配_p2指针数组使用?还有记住脱衣服法则:?a2变成_(a+2)a23变成_(a+2)3再可以变成_(_(a+2)+3)?第 23 页 共 23 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁