C语言入门必须掌握的75个知识点..docx

上传人:太** 文档编号:96910651 上传时间:2024-04-02 格式:DOCX 页数:11 大小:25.70KB
返回 下载 相关 举报
C语言入门必须掌握的75个知识点..docx_第1页
第1页 / 共11页
C语言入门必须掌握的75个知识点..docx_第2页
第2页 / 共11页
点击查看更多>>
资源描述

《C语言入门必须掌握的75个知识点..docx》由会员分享,可在线阅读,更多相关《C语言入门必须掌握的75个知识点..docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C语言入门必需驾驭的75个学问点1、C语言中整数默认为INT型,两个整数相除(如1/2结果照旧是整数,要得到 带小数点的答案则要改成1.0/22、在C语言中,“=”是赋值运算符,表示把某个值赋给某个变量(X=0即把0值 赋给X变量;“=是关系运算符,表示“等于 (X=0即X等于0,在编写C程序时 要留意区分。3、1个字节等于8位二进制(某整形数据依据2字节在内存中支配空间,即该数 据对应的二进制形式是16位二进制;在AS C II码中,英文字母(不分大小写、英 文标点占一个字节,中文汉字、中文标点占两个字节。4、基本运算符的优先等级一一(PS:手机无法显示部分符号“! ” than算术运算 符

2、(+/-/*than关系运算符than逻辑运算符than赋值运算符(三要想从C菜鸟变成C 老手,一些基本的优先等级是必需知道的(C运算符的优先等级详见附录C5、关于putchar函数 putchar函数即字符输出函数,表示向输出设备(显示 器输出一个字符。无论用户输作何种输入,函数都只会输出字符(putchar(65输出结 果是A ” , putchar( 65输出结果是“ 65,?; putchar函数可以通过输出限制字符,让 程序执行某种指令(putcharQ n则程序会执行换行指令。6、教材在介绍格式符的章节里有不精确的地方(见P33-d格式符、s格式 符、f格式符的介绍里,“ m ”应

3、是最少输出位数(书上的描述是“总位数”:md, %ms, %mf,分别对应输出最少m位整型数据,m位字符串,m位浮点数,位数不足时左补空格。7、对于我们来说,C语言不仅是一门必修课。现代人类生活中 所用的几乎每件电子和机械产品中都会集成有单片机,单片机的前景是很广袤的(有 爱好的同学可以向老师询问或者上网了解,要设计出现代化的电子产品无疑要懂得 用单片机。单片机的运行全靠程序,不把程序设计学好如何谈得上运用?所以,希望 各位能够重视C语言这门课程。64、成员运算符一一“.”是成员运算符,在全部运算符中它的级别最高。因此, 在程序中的任何地方,”结构体变量名.成员名”都是整体出现的。(也就是说,

4、我们 可以习惯地把“结构体变量名.成员名”看成一个整体65、结构体指针变量一一当一个指针变量用来指向一个结构体变量时,称之为 结构体指针变量;结构体指针变量的声明:struct结构体名*p, struct结构体名”可视 作一个类型说明符(int、char、float这些就是类型说明符。66、结构体指针变量的含义:假如p是一个结构体指针变量,则p指向一个具 有结构体名对应的结构的结构体变量(如struct student *p,此时p指向具有“ student ” 结构的结构体变量。67、指向运算符一一利用结构体指针引用结构体成员时,一般会用到指向运算 符;指向运算符拥有最高的优先级别(和成员运

5、算符是同一个优先级别的),结合方向从 左到右;设sp是一个结构体指针,指向一个名为stu结构体变量,则有如下对应 关系:*sp=stu, (*sp.(成员名=$8.(成员名=sp-(成员名68、动态链表的特点能够实现在程序运行的过程中开拓新的内存空间或者释放旧的内存空间;可以看 作是由一条条链和一个个节点交替形成的链式结构,其中的节点就是结构体变 量;后一节点的地址会存放在前一节点,则可以实现通过前一节点访问后一节点, 这就是节点之间的关联,也就是节点的“链”。69、关于exit(函数一一exit ()函数 的作用是干脆终止程序,一般状况下括号里放的是0,当程序执行到语句 “exit(0 ;

6、”时,程序就会终止执行。70、动态链表的建立(思路)一一 1.先建立一 个表头,作为链表的首节点,作用是标记链表的位置,表头一般不用来储存数 据;2.利用malloc(函数建立新的节点,把节点的地址存在表头的链域;循环进行 该步骤即可建立出随意长度的链表。71、共同体变量.定义共同体变量与定义 结构体变量的方式极其相像,此处不作赘述,详见P174;2.共同体变量的最大特 点是能够自由更变更量的数据类型,我们可以把共同体变量理解成一个能够变换 类型的变量。72、typedef语句一一作用是建立一个等效字符串,这个等效字符串能够代替某个类型说明符进行类型说明,简言之,typedef语句的作用是为某

7、个类 型说明符起别名;(例:执行语句“typedef intAA ; ”后,“AA”能够代替int对变 量进行类型声明,如AAx;) ”73、左移运算符:属于双目运算符,格式是 “变量名操作数”,操作数确定了变量移位的位数,变量移位后在右侧补0 74、 右移运算符 :属于双目运算符,格式是“变量名操作数”,操作数确定了变量 移位的位数,变量移位后,假如变量原来是负数则在最高位补1,否则补0 75、” 字符串”表示的是字符串的首地址,字符,表示字符的ASCII码8、定义变量时不能运用赋值语句。 int i=j=k=O; ”这种定义方法有误,要正确 定义变量并对变量进行初始化,则应修改成int i

8、=O,j=O,k=O; (顺带提示一下,每个 语句的结尾都应该添上”9、关于if语句一一“ if(括号里面输入的数据或表达式是其判定条件,只要数 据或表达式对应的值非零,便会执行if语句之后的语句,反之不执行。(如语句 “ if(a=O,具体是把0值赋给a,括号里的数值是0,则不执行if语句之后的内容10、基础学问巩固-结构化程序设计的三种基本结构:依次结构、选择结 构、循环结构;算法的4种表示方式:自然语言、伪码、流程图、N-S图。对于一些 基础的C语言学问最好能够做到心中有数,不仅是为了巩固基础,这些内容以后考试 也会涉及到的。11、强制类型转换一一运用强制转换运算符可以实现对变量的数 据

9、类型进行转换,强制转换运算符的格式为“(类型名,如(int,是其中一种强制转换 运算符。(intx+y只对变量x进行强制转换;(int(x+y对x+y的值进行强制转换。12、条件运算符一一运算优先等级低于关系运算符,高于赋值运算符。条件 运算符的结合性是自右至左,运用时有以下技巧:第一个条件运算符的“:”后面的内容 加上括号(手机无法正常显示例子,详见P46中条件运算符的介绍。13、利用关系运算符对字符和数据进行比较时,要先将字符转换成对应的ASC II值。如“if(A=65” ,要先将A转换成对应的ASC II值(65,再和65进行比较。14、continue语句和break语句的运用:co

10、ntinue语句的作用只是跳过该次循环, 转而进入下一次循环条件的推断,并不会中止整个循环;break语句只能用在switch 语句和循环体内,在循环体内的作用是干脆终止整个循环体,不再进行任何循环条件 推断和执行循环体内的语句。15、对于无符号变量,二进制的最高位代表数据的最高位;对于有符号变量,二进 制的最高位数代表数据的符号位,仅用来确定数据是正数还是负数,在进行反码、补 码运算时不参与运算。16、运用case语句时确定要在case后面加空格(如“ case 1” ,否则系统会把case 与常量表达式一同识别为一个标识符(如easel” ,是一个标识符;case后面确定要 是一个常量表达

11、式,不能是关系表达式或者别的表达式-常量表达式,必需的17、字符与字符,字符与数据均可以通过关系表达式进行比较。进行比较时,字 符先转换成对应的ASC II值。(if(AB先把A、B分别转换成65、66; if(65B 先把B转换成66 18、逻辑运算符“非” (! ”-一书上说的原值取反并非取相反数。 逻辑“非”的运算法则中,“取反”是“取反义值”:对非0值取0(如“! 2”等于0,代表 “假”,对。取非0值(如“! 0”等于1,代表“真”;凡是非0值都能代表“真”,C语言中 的“真”默认用数值“ 1”来表示(即当运算结果为“真”时对应的数值是1。19、循环结构中要让变量进行自增或自减时,既

12、可以运用前缀自增自减(如+i -i,也可以运用后缀自增自减(如i+,i-,互换两种增减方式对循环结构不造成影响, 编写C程序时可依据自己的个人习惯进行选择。(由于自增自减在循环结构中一般 是独立语句,所以可以互换20s编译器在求解逻辑表达式的值时,接受“非完全求解”的方法,并不是所以的 逻辑运算符都被执行,只有在须要执行下一个逻辑运算才能求出表达式的解时,才接 着运算(如“ 0&2&3”,0代表假,后两个表达式不必推断,运算立刻终止21、goto语句goto语句的作用是无条件转向“语句标号”处执行(如“ ibm :x=a”中, ibm :即为语句标号”;“语句标号”仅仅对goto语句有效,“语

13、句标 号”后面的语句在程序中照样会执行,也就是说“语句标号”不影响其后语句的执行, 只是一个标记;因为无条件转向使程序结构无规律、可读性差,一般应避开运用goto 语句,除非它能大幅提高程序的执行效率。22、1、猛烈建议大家在写困难程序之前先把算法写出来! !(一般来说,接 受流程图来写算法比较便利2、while语句-条件符合时执行语句,直到不符合 条件;do-while语句-一先执行语句,再进行判定,条件符合时接着执行语句。两种 “while ”语句要视实际状况来运用。23、用printf来输出浮点型数据时,一般格式为【printf( 产,浮点型变量或浮 点型常量】,系统默认输出的浮点数有6

14、位小数,假如须要增加或削减输出的小数 位数,可以利用格式【printf(“.nE,浮点型变量或浮点型常量】,其中的n表示了 输出的浮点数的小数位数。(PS:用格式printf(lF,浮点型变量或浮点型常 量】无法变更小数位数24、假如被调函数的返回值是整型或字符型,可以不对被调 函数进行声明,而干脆调用。这时,系统将自动对被调函数的返回值按整形处理。 (也就是说,在没有对函数返回值进行定义的状况下,系统默认为整型量25、关于无参函数一一一般状况下,无参函数没有返回值,此时函数类型标识符 可以写为void,向系统表明该函数将不会返回任何值。此外须要说明的是,假如要定 义带返回值的无参函数,也是可

15、以的。(无参函数也可以有返回值,不过一般状况下 让它有返回值也没多大意义26、形参变量只有在函数被调用时才支配内存单元,在调用结束时,便会释放 所支配的内存单元。因此,形参只在本函数内部有效,函数调用结束返回主调函数后 则不能再运用该形参变量了。(也就是说,形参变量在运用过后便会“消逝”27、关于函数参数-把某个函数A作为另一个函数B的实际参数时,必需保 证A函数有返回值【如sqrt(sum(a,b,sum函数必需有返回值】;假如在A函数内,B 函数和C函数同时充当A函数的实际参数,则依据自右向左的依次求值(当求值依 次会影响函数结果时就要留意这一点。如printf( %d,%d” ,sum(

16、a,b,sqrt(c,先计 算sqrt函数的值】28、“void”是其中一个C语言关键字,用来对函数类型进行声 明,表明函数不会有返回值;被“void ”声明白的函数不能用来给变量赋值,因为函数 是没有值的。29、主函数放最终的话,可以不用进行函数声明(如“void funQong”,是一个函数 声明;假如主函数不是放在最终,要保证全部函数在main函数出现之前已经声明白 函数类型和形参变量类型。30、初学者编写函数时的常见错误:I、函数体的花括弧或复合语句的花括弧 不配对;II、调用函数时,实参与形参在个数、类型以及依次上不匹配;III、调用 库函数时遗忘# include语句,调用自定义函

17、数时遗忘进行函数声明。(其中第三点 是最常见的错误,记得调用库函数时要加头文件31、主函数中定义的变量只能在主函数中运用,不能在其他函数中运用。同时, 主函数中也不能运用其他函数中定义的变量。主函数也是一个函数,虽然被称作 “主函数”,但实际上它与其他函数是平行关系,应予以留意。32、关于全局变量-1.它不属于哪一个函数,它属于一个源程序文件2其 作用域是整个源程序(在哪个函数哪个复合语句中都能取用;3.全部全局变量的储 存位置都是静态储存区。33、全局函数建议尽量少用,缘由:1.全局变量在程序的全部执行过程中都占 用着存储单元;2.降低函数的独立性,继而降低程序的牢靠性,同时也不利于将来程

18、序的移植(最主要的缘由,用太多的全局变量会导致函数移植后难以独立运用;3.运 用过多的全局变量,会使程序的可读性降低,人们往往难以明确推断各个时刻各变量 的取值。34、关于自动变量(aut。一一函数中的局部变量,如不特地声明为static存储类 别,都是动态地支配存储空间的,数据存储在动态存储区中,函数中的形参变量和在函 数中定义的局部变量(包括在复合语句中定义的变量都属此类,在调用这种函数时系 统会自动给他们支配空间,在函数调用结束时将自动释放这些空间。(最大的特点 是函数调用完毕后会“消逝”35、#include文件包含指令,一个include叮嘱只能指定一个被包含文件(也 就是说,要包含

19、多个文件,则须要用多个include叮嘱;文件包含允许嵌套,即在一个被 包含的文件中还可以包含另一个文件。36、寄存器变量-为了提高效率,C语言允许将频繁运用的局部变量的值存 放至CPU的寄存器中,这种变量成为“寄存器变量”,用关键字register来声明;会“消 逝”的变量才可以作为寄存器变量(如局部自动变量、形参变量;寄存器变量的数目 是有限的,不能随意定义。37、静态局部变量静态局部变量储存在静态储存区;假如不给静态局部 变量赋初值,则系统自动赋其。值;静态局部变量只能进行一次初始化(即赋初值,如 “ int x=0” 38、关于无参数宏一一无参数宏可以用来替代常数和表达式;无参数宏 的

20、定义必需在函数外,作用域为自宏定义叮嘱起到源程序结束(定义之后就能用到 最终;宏定义后面不用加分号。39、关于带参数宏-带参数宏在进行替换时,保留函数中的实参(可以理解 成把宏替换掉后再将实参“放回去”;定义带参数宏时,为了避开程序在执行过程中出现副作用, 需要加两重括号:第一重括号加在形参上,其次重括号加在整个字符串上(如 “ #define M(x (x*(x ”40、关于指针型变量-指针型变量只能存放变量的地址,赋值时只能赐予地 址;未经赋值的指针变量不能运用(有可能导致死机;定义指针时的类型说明符:表 示了指针型变量指向的变量的数据类型(可记成“指向类型”。41、数组和指针型变量的联系

21、一一数组名是一个地址,可以把数组名赐予指针 型变量(假设P是指针型变量,执行语句“ p=a”后,p指向数组a的第一个元素a0; 若已经把数组名赐予指针型变量,则指针型变量可以通过加减运算变更其对数组a 的指向(执行语句“ p=a; p=p+2; ”后,p指向数组a的第三个元素a2 o42、指针变量的初始化-指针变量必需进行初始化才能运用,一般格式有两 种,一种是同时进行类型说明和赋值(如int *p=&x;,一种是把类型说明和赋值分开 进行(如int *p;p=&x;,初始化必需包括类型说明和赋值。43、指针运算符一一符号为“*”,作用是返回一个指针所指向的对象的值。(如 “int *p=&x

22、; i=*p; ,语句“ i=*p; 在执行时先执行指针运算符,把p指向的变量x的 值调出来,然后把该值赋给变量i44、对指针变量进行赋值定义两个指针变量pl,p2, int *pl=&x,*p2=&y , 当执行语句 pl=p2”时,p2的值对应的是y的地址,把该值赐予pL则此时pl的值也 会变成y的地址;当执行语句“ *pl=*p2”时,p2指向的变量y的值会被赐予pl指向 的变量X。45、假如要把指针变量p指向数组a的第一个元素,可以运用下面的语 句:“ p=&aOf ,或“ p=a;”两种赋值方式是完全等效的。(这里的“ a ”就是“ a”的 地址46、关于空指针一一空指针不同于未赋值

23、的指针变量,空指针可以运用而未赋 值的指针变量不能;空指针不指向任何变量,对应的值是0(假设p是一个空指针,则 有p=0 0 47、二维数组的两种赋值一一设p是指针变量,a是一个二维数组,运行 语句“ p=a”后,p指向二维数组的第一行;运行语句“ p=a0后,p指向二维数组的第 一行第一个元素a00o48、二维数组行指针和列指针-假设ai用是一个二维数组,则“ a+m”指向 二维数组的第m行,是一个行指针;*(a+m是一个列指针,指向第m行第。歹U(限制由 行转为列,但仍为指针;*(*(a+m是数组元素的值。49、函数中的指针变量一一函数中的指针变量用来对主函数中的变量进行运 算,这是指针变

24、量在函数中的重要应用;关于数组名-数组名是数组第一个元素 的首地址,它不是一个变量,不能对其数值进行更改;50、调用形参为指针类型的函数时,留意要保证函数内新增加的指针变量已经 进行定义和初始化,并且要在运行程序之前做好检查,确保调用函数时没有对无关地址的内容进行修改,这样便能避开严峻后果的发生。(运用指针进行编程的确须要 当心谨慎51、字符串及其操作一一对字符变量进行赋值时运用的必需是一对单引号,运 用双引号来赋值属于非法操作;C语言中空字符用0来标识,此处的“0事 实上是指八进制的0。52、指向指针的指针一一指针变量也有自己对应的地址,这 个地址储存的是指针变量的值(具体为另外某个变量的地

25、址;可以把指针变量(假设 是P1的地址值赐予另外一个指针变量(假设是P2,则此时P2指向Pl, P2是一个指 向指针的指针。53、关于字符数组一一字符型与整型相互通用,因此intai也可以定义为字符 数组。但两种类型支配的字节不同,用整型来定义会奢侈空间,另外这样定义的实际 意义也不大,这里只是为了说明其合法性。(不知道考试会不会涉及到这种内容所 以给大家提点一下54、字符串连接函数strcat(-用于把两个字符串连接在一起, 组成一个字符串。用法如下:strcat(strl,str2,其中strl和str2是两个字符串,该函数把str2连接在strl中的 字符串后面,并删除原来strl后面的

26、空字符。运用该函数须保证strl能够储存连接 后的长字符串。55、字符串比较函数strcmp(strl,str2依据字符的ASC II值,对两个字符串自左向右逐个字符比较大小,直到遇到不同字符或同时遇到空字符为止。同时遇到 空字符时函数的返回值为0;遇到不同字符时,比较两个字符的ASC II值,当属于 strl的那个字符的ASC II值较大时,函数的返回值大于0,较小则函数返回值小于 0o56、字符串copy函数strcpy(strl,str2该函数的作用是把某个字符串数组的内容复制到另外一字符串数组中。执行strcpy函数后,则strl中的内容变成str2 中的内容,运用时要保证字符串数组s

27、trl有确定的长度,足够容纳str2的内容。(三 个字符串函数的用法都比较简洁把握,别把函数名记错就没问题了57、测试字符长度函数strlen(strl-用于测试字符串的实际长度,其中不包 括空字符,strl可以是字符串或字符数组。(灵敏调用各种字符串处理函数能够实现 许多不同的功能,希望大家能够娴熟驾驭58、结构体和结构体变量的定义-结构体的定义方式:struct结构体名成员 表;,成员表中的各个部分必需包括成员类型及成员名;结构体变量的定义方 式:struct结构体名结构体变量,结构体变量可以有多个,各个变量之间用逗号间隔开 来。59、结构体和结构体变量的定义(2-共有三种方法:1、定义结

28、构体,再定 义结构体变量;2、定义结构体类型的同时定义结构体变量;3、利用无结构体类型 名定义变量(第一种和其次种比较常用,由于篇幅的限制,具体的定义形式详见教材 P152P153O PS :三种定义方法都有提及到结构体嵌套,虽然篇幅很少,但也要留 意一下60、定义了结构体变量后,系统要为变量支配内存空间。在内存中,结构体变量 占有连续的一段内存空间:结构体变量占用的一段连续内存空间=结构的各成员所 占用的内存空间之和。61、结构体数组一一以结构体变量作为元素的数组即为结构体数组(PS :XX数 组就是以XX变量作为元素的数组,和结构体变量的定义特别相像,结构体变量的定 义方式有三种:先定义结

29、构体,再定义结构体数组;定义结构体类型的同时定义结构 体数组;利用无结构体类型名定义结构体数组。(同样由于篇幅限制,具体定义格式 详见P156 62、字符串的输入和输出(1用scanf(和printf(进行输入和输出字符串时,双引号内应出现S,输入项处应放入字符串数组的数组名(如 printf( s” ,strl淇中strl是数组名,虽然输出的是strl的内容,但这种格式的输出 只要放入数组名就可以了。63、用puts(和gets(来进行输入输出字符串时,要保证括号内的是单个字符数组 名(是字符数组名,而不是字符串数组名。另外,利用puts(函数进行字符串输出时,要 保证括号内数组名对应的数组的末尾是一个空字符,否则会出现惊异的输出结果。

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

当前位置:首页 > 应用文书 > 解决方案

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

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