篇一:C语言知识点总结(正式版)
C语言知识点总结
C语言知识点总结 ............................................................................................................ 1 一、
二、
三、
四、
五、
六、
七、
八、 常量 .................................................................................................................... 2 标识符 ................................................................................................................. 2 变量 .................................................................................................................... 2 表达式 ................................................................................................................. 3 输入输出函数 ...................................................................................................... 4 C语言的语句 ....................................................................................................... 5 C程序的基本结构 ................................................................................................ 5 选择结构语句 ...................................................................................................... 5
? if(表达式) 语句1 else 语句2 ............................................................................. 5
? 条件运算符 表达式1? 表达式2 : 表达式3 ....................................................... 6
? switch语句 ........................................................................................................ 6
九、 循环结构 ............................................................................................................. 6
? for循环语句 ...................................................................................................... 6
? while循环语句 do while循环语句 ..................................................................... 6
十、 数组 .................................................................................................................... 7
十一、 字符串函数 .......................................................................................................... 7
十二、 函数 .................................................................................................................... 8
十三、 指针 .................................................................................................................... 9
十四、 宏定义 ............................................................................................................... 10
十五、 结构体,共用体,枚举类型 ............................................................................... 10
十六、 Turbo C的使用.................................................................................................. 12
一、 常量
? 数字常量
i. 普通数字:1,35,2.7
ii. 指数形式:2.45e-2等价于2.45*10-2 注意ee前面的数字不能省,就算是1也不能省,后面的数字一定要是整数
iii. 长整型,单精度浮点型:3235L,32.5F 分别表示3235是长整型数据,
32.5是单精度浮点型左,若不写上L,F则表示3235是整型,32.5是双精度浮点型,L,F大小写皆可
? 字符常量
i. 普通字符常量:用单引号把一个字符括起来,如?A?,?@?
ii. 转义字符常量:一对单引号括起来并以“\”开头的字符序列,如?\n?(回
车)、?\123?(8进制123对应的字符), ?\x23?(16进制23对应的字符) ? 字符串常量
用一对双引号把一个字符序列括起来,如“ABCef”, 系统存放字符串常量,每个字符分配一个字节,各字符所占字节紧邻,并且字符串末尾会给再开一个字节里面放一个’\0’做为结束标志。
? 符号常量
定义格式 #define 符号常量名 符号常量值,如#define N 20则定义了符号常量N,其值为20,注意符号常量名和符号常量值之间是用空格隔开,而不是写上=号,#define和符号常量名之间也有空格的。
二、 标识符
? 命名规则
以数字,字母,下划线这三类字符组成,但只能以字母或下划线开头,而不能也数字开头,另外不能将关键字做为标识符。32个关键字表在P365附录B
? 变量名,函数名,符号常量名全都是标识符
三、 变量
? 变量的定义格式
类型名 变量名;
如 int a;定义了一个整型常量a。变量名是由人类随便定义的,符合命名规则的前提下,爱写啥就写啥。所以什么flag,cc,y1或者函数名fun,find等全部是自定的用来做为名字而已,没有更特别的意义。
? 类型名
int 整型,long 长整型: 用于存放整数,只是数值范围不同
float 单精度浮点型 double 双精度浮点型:用于存放实数,数值范围,精度不同
char字符型:用于存放字符
? 变量赋值,初始化
int a=3;定义的同时初始化
a=6*9;定义后在程序中进行赋值
? 变量的值
只有在赋值操作时才会被改变,即将其放在等号左边时才会改变它的值,或自增自减操作:a=5,a++,a--,像a+3并未改变a的值,只是使用了a的值而已.
? 自增自减运算
变量++,++变量,变量--,--变量 使变量的值自增1或自减1
等价于 变量=变量+1 变量=变量-1
++,--放于变量前后效果的区别:
当自增自减运算做为表达式的一部分时,++,--放在变量前面是先自增自减再使用变量的值,放在变量后面则是先使用变量的值,再自增自减。 如x=3; printf(“%d”,++x);则相当于执行了++x; printf(“%d”,x);这样的操作所以打印出4
再如x=3; printf(“%d”,x++);则相当于执行了printf(“%d”,x); x++;这样的操作,则打印出3,当然最后x的值还是4。
四、 表达式
? 运算符和运算对象
一个运算符都有若干个运算对象,如 + 必然要跟两个运算对象才能进行加法运算:3+5。C语言里称需要跟n个运算对象的运算符为n元运算符。 一元运算符有:!,(类型名)
二元运算符有:+,-,*,/,%(求余), =,+=,-=,*=,/=,%=,< , > , <=, >=, = =(等于), !=(不等于),&&(且) , ||(或)
多元运算符有: ,
? 运算符的优先级和结合性
i. 优先级:同一个运算对象左右两边若同时有两个运算符,则这两个运算
符优先级高的先进行运算。
ii. 结合性:若同一个运算对象左右两边的两个运算符优先级相同,则根据
结合性判断先进行哪个运算,自左自右结合性的先算左边的运算符,自右自左的先算右边的运算符。
iii. 各运算符的优先级和结合性见P365附录C
? 强制类型转换
格式: (类型名) 表达式 。将后跟的表达式的值的数据类型转换为与圆括号内的类型名一致的类型。注意类型名一定要用() 括起来。
? 算术表达式
i. 算术运算符:+,-,*,/,%(求余)
ii. 由算术运算符加上运算对象构成算术表达式,如3+3*6-9/2
iii. 值:跟我们小学时学的一样,就是表达式的计算结果
iv. 整数除以整数结果取整数部分,故1/3得到的值是0
v. 5%3 结果为2,想想小学除法,求余得到的是余数不是商。
? 赋值表达式
i. 赋值运算符:=,+=,-=,*=,/=,%=
ii. 赋值表达式:变量=表达式,如x=3+6,x+=6-9,x+=x*=3+4 注意等号
左边只能是变量
iii. 复合赋值运算符的运算:以/=为例:x/=表达式 等价于 x=x/(表达式) iv. 值:=号左边的变量最终的值
? 关系表达式
i. 关系运算符:< , > , <=, >=, = =(等于), !=(不等于)
ii. 由关系运算符加上运算对象构成关系表达式,如3>=4, 2==a
iii. 值:满足相应运算符所指定的关系的值为1,否则为0
? 逻辑表达式
i. 逻辑运算符:&&(且) , ||(或) , !(非)
ii. 由逻辑运算符加上运算对象构成逻辑表达式,如3&&4, x||!y
iii. 值:满足相应运算符所指定的关系的值为1,否则为0
iv. 进行 ||或 运算时,若||左边的表达式值为1,则不再对右边的表达式v. 进行运算。 进行 &&且 运算时,若&&左边的表达式值为0,则不再对右边的表达式
进行运算。
? 逗号表达式
i. 逗号运算符: ,
ii. 用逗号将各种表达式连续起来构成逗号表达式,如3+4,a=9,8*a
iii. 值:组成逗号表达式的各个表达式中的最后一个的值,如上例为8*a ? 题目:P7—11~17 P8—18~33
五、 输入输出函数
? scanf(“格式控制串”,变量地址表列);
如scanf(“%d%c%d”,&a,&ch,&b); scanf(“%4f”,&x);
注意:
i. 格式控制串可控制截取用户输入的前几个字符给变量,但不能控制输入
几位小数给变量,如不能写成scanf(“%4.2f”,&x);
ii. 第二个参数给的是地址,即要么是&+变量名或数组元素名的形式,要
么就是一个数组名或指针变量名,如int *p,a; p=&a; scanf(“%d”,p);
iii. 考试时注意看题目给你写好的scanf的格式
1. 若其格式控制串内各格式符用“,”隔开如
scanf(“%d,%c,%d”,&a,&ch,&b);那输入时也要用逗号隔开,如此例输入时应:3,+,5
2. 若是这种格式scanf(“%d %d”,&a,&b);则输入时应:3 5;
3. 若是这种格式scanf(“%d%c%d”,&a,&ch,&b);则输入时应3+5,若写成3
+ 5则a=3,ch=‘ ’(空格),b=任意值(自己上机运行看看结果) ? printf(“格式控制串”,输出项表列);
如float x=7.5; printf(“%8.2f”,x);此处的意思是将x打印出来,且占8列,保留两位小数。自己上机运行看看效果。
? 常用格式符汇总:
i. %d:输入输出整型数据,%ld:输入输出长整型数据
ii. %c:输入输出字符型数据
iii. %f:输出单(双)精度浮点型数据,输入单精度型数
据。%lf:输入双精度型数据
iv. %s:输入输出一个字符串,用printf输出字符串时,输出项书写时可
为字符串常量,或字符数组名。如printf(“%s”,”hello”);或char
str[10]=”hello”; printf(“%s”,str);
%u:输入输出无符号整型,%o:输入输出八进制数, %x:输入输出十六进制数
? getchar();
函数调用后返回用户输入的一个字符,故需再定义一个变量来存放这个字符,即使用时应 char c; c=getchar();意思就是接收用户输入的一个字符,并将其赋值给变量c。
? putchar(字符常量或字符变量名);
如char c=?A?; putchar(c);或putchar(?A?);都会向屏幕输出字符A。 v.
六、 C语言的语句
?
?
?
?
?
? 表达式语句:由表达式末尾加上分号构成。 函数调用语句:由函数调用表达式加上分号构成。 空语句: ; 选择结构语句:if语句 switch语句 循环语句:for语句 while语句 do while语句 复合语句:用花括号{}将以上任意语句括起来构成一条复合语句。
七、 C程序的基本结构
void main()
{ 声明部分:用来定义变量和声明自定义函数的原型,需以“;”结尾,如int x; 执行语句部分:第六点里介绍的各种语句,如x=3;printf(“%d”,x); }
main函数外可写自定义函数。如
int max()
{
return 0;
}
八、 选择结构语句
? if(表达式) 语句1 else 语句2
如果if语句的圆括号内的表达式值为非0,则执行语句1,值为0则执行语句2。
i. 表达式可为任意表达式,if语句执行的实质是判断表达式的值是否为0
来决定执行语句1还是语句2。另外请在此处表达严重关切,不管是高ii. 手还是菜鸟经常会把判断两个数相等的符号“==”写成了一个等号“=”成为了赋值运算,这样的写法不会引发编译错误,但结果会与原意大大不同,所以考试前请再三提醒自己。 语句1和语句2都只能是一个语句,若要跟多条语句,切记用一对{}
括起来,构成复合语句;也不要随便在圆括号后加“;” ,因“ ;”构成一条空语句,这会使后面跟的语句1不再属于if语句的组成部分。 if语句的三种结构
单边: if(表达式) 语句
双边:if(表达式) 语句1 else 语句2
多层(重点掌握):
iii. 1. 2. 3.
篇二:C语言中extern的用法
C语言中extern的用法
在C语言中,修饰符extern用在变量或者函数的声明前,用来说明“此变量/函数是在别处定义的,要在此处引用”。
1. extern修饰变量的声明。举例来说,如果文件a.c需要引用b.c中变量int v,就可以在a.c中声明extern int v,然后就可以引用变量v。这里需要注意的是,被引用的变量v的链接属性必须是外链接(external)的,也就是说a.c要引用到v,不只是取决于在a.c中声明extern int v,还取决于变量v本身是能够被引用到的。这涉及到c语言的另外一个话题--变量的作用域。能够被其他模块以extern修饰符引用到的变量通常是全局变量。还有很重要的一点是,extern int v可以放在a.c中的任何地方,比如你可以在a.c中的函数fun定义的开头处声明extern int v,然后就可以引用到变量v了,只不过这样只能在函数fun作用域中引用v罢了,这还是变量作用域的问题。对于这一点来说,很多人使用的时候都心存顾虑。好像extern声明只能用于文件作用域似的。
2. extern修饰函数声明。从本质上来讲,变量和函数没有区别。函数名是指向函数二进制块开头处的指针。如果文件a.c需要引用b.c中的函数,比如在b.c中原型是int fun(int mu),那么就可以在a.c中声明extern int fun(int mu),然后就能使用fun来做任何事情。就像变量的声明一样,extern int fun(int mu)可以放在a.c中任何地方,而不一定非要放在a.c的文件作用域的范围中。对其他模块中函数的引用,最常用的方法是包含这些函数声明的头文件。使用extern和包含头文件来引用函数有什么区别呢?extern的引用方式比包含头文件要简洁得多!extern的使用方法是直接了当的,想引用哪个函数就用extern声明哪个函数。这大概是KISS原则的一种体现吧!这样做的一个明显的好处是,会加速程序的编译(确切的说是预处理)的过程,节省时间。在大型C程序编译过程中,这种差异是非常明显的。
3. 此外,extern修饰符可用于指示C或者C++函数的调用规范。比如在C++中调用C库函数,就需要在C++程序中用extern “C”声明要引用的函数。这是给链接器用的,告诉链接器在链接的时候用C函数规范来链接。主要原因是C++和C程序编译完成后在目标代码中命名规则不同。
用C语言编写程序的时候,我们经常会遇到这样一种情况:希望在头文件中定义一个全局变量,然后包含到两个不同的c文件中,希望这个全局变量能在两个文件中共用。
举例说明:项目文件夹project下有main.c、common.c和common.h三个文件,其中
common.h文件分别#include在main.c和common.c文件中。现在希望声明一个字符型变量key,在main.c和common.c中公用。如下图所示:
有人想,既然是想两个文件都用,那就在common.h中声明一个unsigned char key,然后由于包含关系,在main.c和common.c中都是可见的,所以就能共用了。
这种想法其实是很多初学者都会想到的,想起来确实有道理,但是实际写出来,我们发现编译的时候编译器提示出错,一般提示大概都类似于:Error: L6200E: Symbol key multiply defined (by common.o and main.o). 也就是说编译器认为我们重复定义了key这个变量。这是因为#include命令就是原封不同的把头文件中的内容搬到#include的位置,所以相当于main.c和common.c中都执行了一次unsigned char key,而C语言中全局变量是项目内(或者叫工程内)可见的,这样就造成了一个项目中两个变量key,编译器就认为是重复定义。
正确的解决办法:使用extern关键字来声明变量为外部变量。具体说就是在其中一个c文件中定义一个全局变量key,然后在另一个要使用key这个变量的c文件中使用extern关键字声明一次,说明这个变量为外部变量,是在其他的c文件中定义的全局变量。请注意我这里的用词:定义和声明。例如在main.c文件中定义变量key,在common.c文件中声明key变量为外部变量,这样这两个文件中就能共享这个变量key了,如下图所示。
代码如下(只写跟我们所说问题有关的部分):
(1)main.c文件
#include "common.h"
unsigned char key;
(2)common.c文件:
#include "common.h"
extern unsigned char key;
很多人看了可能糊涂,这里稍微说一下,其实就是变量定义和变量声明的区别,变量定义使用“数据类型+变量名称”的形式,编译器需要给他分配内存单元的;而变量声明使用“extern 变量类型+变量名称”
的形式,是告诉编译器我这个变量将在其他外部c文件中定义,我这里只是在外部用它。编译器就不给他分配内存空间,而等到真正遇到变量定义的时候再给他分配内存空间。
由于很多人从开始学C语言就一直把定义变量叫声明变量,一开始就叫错了,所以导致现在分不清定义和声明的区别。要是还理解不了就想想函数的定义和声明,函数定义是编写函数功能实体,编译器要编译这个函数并且要分配内存空间,而函数声明并不生成函数功能实体,只是告诉编译器这是个函数,这个函数在后面将会定义实体,我这里只是提前用,编译器就会接着继续往下编译,如果子函数写在main函数之后,那么声明是必须的,如果不声明函数编译器都不知道这是个函数,编译就会报错。
篇三:C语言程序设计谭浩强重点笔记
C语言设计
学习笔记
早晨: 06:40 起床
07:20——08:20
上午: 08:30——10:30
10:50——11:30
中午: 12:00——02:00
下午: 02:30——04:30
晚上: 05:30——08:00
08:00——09:00
09:00——11:00
11:30
英语 1小时 新概念英语(单词、语法、听读背) 大学英语(单词、语法、听读背) 计算机基础 2小时 计算机科学技术导论 计算机组成原理 微机原理及接口技术 Intel微处理器结构编程与接口 深入理解计算机系统 80x86汇编语言程序设计 8086-8088宏汇编语言程序设计教程 BIOS研发技术剖析 自己动手写操作系统 操作系统原理 Windows操作系统原理 Windows内部原理系列 Windows程序内部运行原理 计算机网络第五版 午休 计算机应用及编程 Windows用户管理指南、AD配置指南、网络专业指南、Windows即学即会教程 Windows下32位汇编语言程序设计、C#编程 锻炼、晚餐 辅导 专业基础 2小时 大学数学、大学物理、电机及拖动、电力电子技术、通信技术 休息
目 录
第一章 C语言概述 ................................................................................................................................. - 1 -
1.1 C程序结构特点16 ................................................................................................................ - 1 -
1.2 C程序上机步骤17 ................................................................................................................... - 1 -
第二章 程序的灵魂——算法23 ............................................................................................................ - 2 -
2.1 算法24 ..................................................................................................................................... - 2 -
2.2 算法的三种基本结构 ............................................................................................................... - 2 -
2.3 结构化程序设计方法42 .......................................................................................................... - 2 -
第三章 数据类型 运算符与表达式48 .................................................................................................. - 2 -
3.1 C语言的基本元素48 ............................................................................................................... - 2 -
3.2 C的数据类型48 ....................................................................................................................... - 2 -
3.3 常量与变量48 .......................................................................................................................... - 3 -
3.4 基本类型................................................................................................................................... - 3 -
3.5 变量63 ..................................................................................................................................... - 4 -
3.6 不同类型数据间的混合运算 ................................................................................................... - 5 -
3.7 函数的调用过程(补充) ....................................................................................................... - 5 -
第四章 最简单的C程序设计——顺序程序设计77 ........................................................................... - 5 -
4.1 字符数据的输入输出 ............................................................................................................... - 5 -
第五章 选择结构的程序设计97 ............................................................................................................ - 6 -
第六章 循环结构程序设计 ..................................................................................................................... - 6 -
6.1 语句标号................................................................................................................................... - 6 -
6.2 break语句和continue语句 ...................................................................................................... - 6 -
第七章 数组132 ...................................................................................................................................... - 6 -
7.1 构造类型................................................................................................................................... - 6 -
7.2 数组133 ................................................................................................................................... - 6 -
7.3 二维数组................................................................................................................................... - 7 -
7.4 字符串——字符数组 ............................................................................................................... - 7 -
7.5 字符串处理函数 #include <string.h> ...................................................................................... - 7 -
第八章 函数153 ...................................................................................................................................... - 8 -
8.1 c程序的结构154 ...................................................................................................................... - 8 -
8.2 函数调用参数传递 ................................................................................................................... - 8 -
8.3 函数变量的作用范围 ............................................................................................................... - 8 -
8.4 变量的存储类别 ....................................................................................................................... - 9 -
第九章 预处理命令197 ........................................................................................................................ - 10 -
9.1 预编译命令作用 ..................................................................................................................... - 10 -
第十章 指针211 .................................................................................................................................... - 11 -
10.1 变量的访问方式 ................................................................................................................... - 11 - 10.2 指针变量............................................................................................................................... - 11 - 第十一章 结构体270 ............................................................................................................................ - 12 -
11.1 结构体270 ............................................................................................................................ - 12 -
11.2 声明结构体类型变量的方法271 ........................................................................................ - 12 - 11.3 结构体变量引用273 ............................................................................................................ - 12 - 11.4 结构体变量初始化 ............................................................................................................... - 13 - 11.5 结构体数组275 .................................................................................................................... - 13 - 11.6 结构体类型指针 ................................................................................................................... - 13 - 11.7 链表283 ................................................................................................................................ - 13 - 11.8 共用体 297 ........................................................................................................................... - 14 - 11.9 枚举类型301 ........................................................................................................................ - 14 - 11.10 用typedef定义的类型304 ................................................................................................ - 15 - 第十二章 位运算308 ............................................................................................................................ - 15 -
12.1 位段 315............................................................................................................................... - 15 - 第十三章 文件319 ................................................................................................................................ - 15 -
13.1 文件319................................................................................................................................ - 15 - 13.2 文件的分类319 .................................................................................................................... - 15 - 13.3 C语言对文件的处理方法319 ............................................................................................. - 16 - 13.4 文件结构体类型321 ............................................................................................................ - 16 - 13.5 文件结构体数组和指针321 ................................................................................................ - 16 - 13.6 文件的操作321 .................................................................................................................... - 17 - 13.7 文件的定位333 .................................................................................................................... - 18 - 13.8 出错检测335 ........................................................................................................................ - 19 - 13.9 小结336................................................................................................................................ - 19 - 第十四章 C++对C的扩充 338 ........................................................................................................... - 20 -
14.1 C++的特点338 ..................................................................................................................... - 20 - 14.2 C++的输入输出 339 ............................................................................................................. - 20 - 14.3 C++的输出cout ..................................................................................................................... - 20 - 14.4 C++的输入 cin 341 ............................................................................................................... - 21 - 14.4 函数的重载342 .................................................................................................................... - 22 - 14.5 带缺省参数的函数344 ........................................................................................................ - 22 - 14.6 变量的引用类型345 ............................................................................................................ - 22 - 14.7 内置函数 348 ....................................................................................................................... - 24 - 14.8 作用域运算符349 ................................................................................................................ - 24 -
第一章 C语言概述
1.1 C程序结构特点16
1、C程序的基本构件——函数。
2、一个函数由函数首部和函数体两部分构成。
? 函数首部一般包括函数类型、函数名、函数参数等。
? 函数体一般包括声明部分和执行部分。其中:在声明部分中定义所用到的变
量;执行部分则由若干个语句组成。
3、C程序只有一个main函数,且总是从main函数开始执行。
4、C语言语句必须以“;”结束。
5、用/**/作为注释。
6、C编译器一般自顶向下顺序编译C源程序,如果被调函数定义在主调函数之后位置时,要在主调函数前,给出被调函数的原型说明。以便编译器在编译被调函数的调用语句时,对调用语句进行参数检查。
如果不进行原型说明,则无法通过编译检查。
原型说明:类型说明 函数名(参数类型,参数类型,??)
7、头文件——头文件包含了C语言的标准函数库的原型说明。
C语言通过使用#include <>预处理命令,将库函数的原型说明插入到源文件中。
1.2 C程序上机步骤17
1、编辑源文件 .c;
2、编译成目标文件.obj;
3、连接——将目标程序和库函数及其
他目标程序连接起来,生产可执行文件,文
件扩展名为.exe;
4、执行。
第二章 程序的灵魂——算法23
2.1 算法24
1、算法——指为求解某一问题而采用的具体方法和步骤。
2、两类算法——数值运算算法和非数值运算算法
3、算法的特性——有穷性、确定性、有效性等
4、算法描述——文字描述法(如伪代码描述算法)、图形描述法(如流程图和NS流程图描述算法)。
2.2 算法的三种基本结构
顺序、选择、循环
2.3 结构化程序设计方法42
1、自顶向下——首先对问题进行分析,确定算法思路。
2、逐步细化——根据算法思路,制定原始算法流程,并不断细化流程。
3、模块设计——分解算法流程,将功能相对独立的部分划分为一个模块。
4、结构化编码——利用高级语言正确实现3种基本结构。
第三章 数据类型 运算符与表达式48
3.1 C语言的基本元素48
1、符号集——C语言使用的基本符号。
2、标识符——用来标记常量、变量、函数及文件名字的字符序列。
3、关键字——C程序规定的,具有特定含义、专门用作语言特定成分的一类标识符。ANSI推荐的C语言关键字是32个。关键字全部应该小写。
3.2 C的数据类型48
数据是操作的对象,数据类型是指数据的内在表现形式。如(数据代码、存储、运算)。
1、基本类型:整型、字符型、实型。
2、构造类型:在基本类型的基础上,按照某种构成规则构造而成的类型。数组、
《c》
由:免费论文网互联网用户整理提供,链接地址:
http://m.csmayi.cn/meiwen/28506.html
转载请保留,谢谢!
- 上一篇:乡镇执纪审查汇报
- 下一篇:信访案件调查报告