C语言要点笔记

上一篇 / 下一篇  2009-05-03 22:26:23 / 天气: 舒适 / 心情: 平静 / 个人分类:测试基础知识


这篇笔记是转自网上其他人的,我发现归纳的比较精炼,对于整体把握C语言的脉络比较实用!

第一章 概述
1
C语言的特点
语言简洁、紧凑,使用方便、灵活。共有32个关键字,9种控制语句。
运算符丰富,公有34种运算符。
数据结构丰富,数据类型有:整型、实型、字符型、数组、指针、结构体、共用体等。
具有结构化的控制语句(如if…elsewhiledo…whileswitchfor
语法限制不太严格,程序设计自由度大。
允许直接访问物理地址,能进行位(bit)操作,可以直接对硬件操作。
生成目标代码质量高,程序执行效率高。
可移植性好。
2
C语言的用途

C
虽不擅长科学计算和管理领域,但对操作系统和系统实用程序以及对硬件进行操作方面,C有明显的优势。现在很多大型应用软件也用C编写。
Top of Page   
第二章 数据类型、运算符与表达式
1
C的数据类型
C
的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
2
常量与变量
常量其值不可改变,符号常量名通常用大写。变量其值可以改变,变量名只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。否则为不合法的变量名。变量在编译时为其分配相应存储单元。
3
整型数据
整型常量的表示方法:十进制不用说了,八进制以0开头,如0123,十六进制以0x开头,如0x1e
整型变量分为:基本型(int)、短整型(short int)、长整型(long int)和无符号型。不同机器上各类数据所占内存字节数不同,一般int型为2个字节,long型为4个字节。
4
实型数据
实型常量表示形式:十进制形式由数字和小数点组成(必须有小数点),如:0.12.123123
0.0
等。指数形式如123e3代表123×10的三次方。

实型变量分为单精度(float)和双精度(double)两类。在一般系统中float型占4字节,7位有效数字,double型占8字节,15~16位有效数字。
5
字符型数据
字符变量用单引号括起来,如'a','b'等。还有一些是特殊的字符常量,如'\n','\t'等。分别代表换行和横向跳格。
字符变量以char来定义,一个变量只能存放一个字符常量。
字符串常量是由双引号括起来的字符序列。这里一定要注意'a'"a"的不同,前者为字符常量,后者为字符串常量,c规定:每个字符串的结尾加一个结束标志'',实际上"a"包含两个字符:'a'''

6
数值型数据间的混合运算
整型、字符型、实型数据间可以混合运算,运算时不同类型数据要转换成同一类型再运算,转换规则:
char,short -> int -> unsigned -> long -> double <- float
7
运算符和表达式
c
运算符包括:
算数运算符( + - * / % )
关系运算符(> < == >= <= !=
逻辑运算符(! && ||
位运算符(<< >> ~ | ^ &
赋值运算符( =
条件运算符( ? :
逗号运算符(,
指针运算符(* &
求字节数(sizeof
强制类型转换(类型)
分量运算符( . ->
下标运算符( [ ]
其它运算符( 如函数调用运算符( )
自增自减运算符( ++ --)注意:++ii++的不同之处,++i使用i之前先使i加1,i++使用i之后,使i加1。
逗号表达式的求解过程:先求解表达式1,再求解表达式2,整个表达式的值是表达式2的值。
Top of Page   
第三章最简单的c程序设计
1.c的9种控制语句:
if() ~ else~
for()~
while()~
do~while()
continue
break
switch
goto
return
程序的三种基本结构:顺序结构,选择结构,循环结构
2.数据输出

c
语言不提供输入输出语句,输入输出操作是由c的库函数完成。但要包含头文件stdio.h
putchar( )
向终端输出一个字符
printf( )
的格式字符:
d格式符 用来输出十进制整数
%d
按整型数据的实际长度输出
%md
使输出长度为m,如果数据长度小于m,则左补空格,如果大于m,则输出实际长度
%ld
输出长整型数据
o格式符 以八进制形式输出整数
x格式符 以十六进制形式输出整数
u格式符 用来输出unsigned型数据,以十进制形式输出

c格式符 用来输出一个字符
s格式符 输出一个字符串
%s
 输出实际长度字符串
%ms
输出的串占m列,如果串长度小于m,左补空格,如果大于m,实际输出
%-ms
输出的串占m列,如果串长度小于m,右补空格,
%m.ns
输出占m列,但只取字符串中左端n个字符并靠右对齐
%-m.ns m
n含义同上,靠左对齐,如果n>m,则m自动取n
f格式符 以小数形式输出实数
%f
整数部分全部输出,小数部分输出6
%m.nf
输出数据共占m列,其中有n位小数。如果数值长度小于m,左补空格
%-m.nf
同上,右补空格

e格式符 以指数形式输出实数
%e
系统指定6位小数,5位指数(e+002 )
g格式符 输出实数,根据数值大小,自动选f格式或e格式

3
.数据输入
getchar( )
从终端输入一个字符
scanf(
格式控制,地址列表)标准C scanf中不使用%u,对于unsigned型数据,以%d%o%x输入。%后的*,用来跳过它相应的数据。输入数据时不能规定精度如scanf( "%7.2f", &a );是不合法的。
Top of Page   
第四章逻辑运算和判断选取控制
1
关系运算符:
c
提供6种关系运算符(> < <= >= == !=)前四种优先级高于后两种。
2
If语句
C
提供了三种形式的if语句
If(
表达式)语句
If(
表达式)语句1 else语句2
If(
表达式1)语句
1
Else if(
表达式2)语句
2

else
语句
n
3
条件运算符

(a>b)?a:b
条件为真,表达式取值a,否则取值b
4
Switch语句

Switch(
表达式)
{
case
常量表达式1:语句1
; break;
case
常量表达式2:语句
2; break;
  

case
常量表达式n:语句n
; break;
  default:语句n+1
;
}
Top of Page   
第五章循环控制

1
几种循环语句
goto
语句(现已很少使用)
while
语句 先判断表达式后执行语句
do-while
语句 先执行语句后判断表达式
for
语句
2
Break语句和continue语句
Break
语句用于跳出循环,continue用于结束本次循环。
Top of Page   
第六章数组
1
一维数组
c
规定只有静态存储(static)和外部存储(extern)数组才能初始化。给数组初始化时可以不指定数组长度。
2
二维数组
3
字符数组
部分字符串处理函数
puts(
字符数组) 将一个字符串输出到终端。
gets(
字符数组)从终端输入一个字符串到字符数组,并且得到一个函数值,为该字符数组的首地址
strcat(
字符数组1,字符数组2) 连接两个字符数组中的字符串,数组1必须足够大。
Strcpy(
字符数组1,字符串2)  将字符串2拷贝到字符数组1中。
Strcmp(
字符串1,字符串2)比较字符串,相等返回0,字符串1>字符串2,返回正数,小于返回负数。
Strlen(
字符数组)求字符串长度。

Strlwr(
字符串) 将字符串中的大写字母转换成小写
Strupr(
字符串) 将字符串中的小写字母转换成大写
以上是一些比较常用的字符串处理函数。
Top of Page   
第七章函数
1
关于形参和实参的说明
在函数被调用之前,形参不占内存
实参可以是常量、变量或表达式
必须指定形参的类型
实参与形参类型应一致
实参对形参的数据传递是"值传递",即单向传递
2
函数返回值
如果想让函数返回一个值,在函数中就要用return语句来获得,在定义函数时也要对函数值指定类型,如果不指定,默认返回整型。
3
函数调用
1)
注意在函数调用时实参和形参的个数、类型应一一对应。对实参表求值的顺序是不确定的,有的系统按自左至右,有的系统则按自右至左的顺序。这一点要注意。
2)
函数调用的方式:函数语句,函数表达式,函数参数
3)
如果主调函数和被调函数在同一文件中,并且主调函数在前,那么一般要在主调函数中对被调函数进行说明。除非:(1)被调函数的返回值类型为整型或字符型(2)被调函数出现在主调函数之前。

4)
对函数的说明和定义是不同的,定义是指对函数功能的确立,包括指定函数名,函数值类型,形参及其类型、函数体等。说明则只是对已定义的函数返回值类型进行说明,只包括函数名、函数类型以及一个空的括弧,不包括形参和函数体。
5)c
语言允许函数的递归调用(在调用一个函数的过程中又出现直接或间接的调用该函数本身)。
4
数组作为函数参数
1)
数组元素作为函数参数 和一般变量相同
2)
数组名作参数应该在主调和被调函数分别定义数组,形参数组的大小可以不定义。注意:数组名作参数,不是单向传递。
3)
多维数组作参数,在被调函数中对形参数组定义时可以省略第一维的大小说明,但不能省略第二维或更高维的说明。
5
局部变量和全局变量
从变量作用域角度分,变量可分为局部变量和全局变量。
1)
内部变量(局部变量)
在一个函数内定义,只在函数范围内有效的变量。
  2)外部变量(全局变量)
在函数外定义,可以为本文件其它函数所共用,有效范围从定义变量的位置开始
     到本文件结束。建议尽量少使用全局变量,因为它在程序全部执行过程中都占用
     资源,而且使函数的通用性降低了。如果在定义外部变量之前的函数要想使用该
     外部变量,则应在该函数中用extern作外部变量说明。
6
动态存储变量与静态存储变量
从变量值存在的时间(生存期)角度来分,可分为静态存储变量和动态存储变量。静态存储指在程序运行期间给变量分配固定的存储空间,动态存储指程序运行期间根据需要动态的给变量分配存储空间。
C
语言中,变量的存储方法分为两大类:静态存储类和动态存储类,具体包括:自动的(auto),静态的(static),寄存器的(register),外部的(extern)
1)
局部变量的存储方式
函数中的局部变量如不作专门说明,都之auto的,即动态存储的,auto可以省略。局部变量也可以定义为static的,这时它在函数内值是不变的。静态局部变量如不赋初值,编译时系统自动赋值为0,动态局部变量如不赋初值,则它的值是个不确定的值。C规定,只有在定义全局变量和局部静态变量时才能对数组赋初值。为提高执行效率,c允许将局部变量值放在寄存器中,这种变量叫register变量,要用register说明。但只有局部动态变量和形式参数可以作为register变量,其它不行。
2)
全局变量的存储方式
全局变量在函数外部定义,编译时分配在静态存储区,可以在程序中各个函数所引用。多个文件的情况如何引用全局变量呢?假如在一个文件定义全局变量,在别的文件引用,就要在此文件中用extern对全局变量说明,但如果全局变量定义时用static的话,此全局变量就只能在本文件中引用了,而不能被其它文件引用。
3)
存储类别小结
从作用域角度分,有局部变量和全局变量
局部变量:自动变量,即动态局部变量(离开函数,值就消失)
     静态局部变量(离开函数,值仍保留)
 寄存器变量(离开函数,值就消失)

TAG:

 

评分:0

我来说两句

日历

« 2024-05-20  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 1331
  • 日志数: 4
  • 建立时间: 2009-05-03
  • 更新时间: 2009-06-08

RSS订阅

Open Toolbar