您的位置:首页 > 编程语言 > C语言/C++

C语言总结

2015-12-12 21:48 483 查看


1、C语言编写的程序称为源程序,又称为编译单位。

2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。

3、一个C语言程序有且只有一个main函数,是程序运行的起点。



1、VC是软件,用来运行写的C语言程序。

2、每个C语言程序写完后,都是先编译,后链接,最后运行。



1、标识符:

合法的要求是由字母,数字,下划线组成。

并且第一个必须为字母或则是下划线。

2、标识符分为关键字、预定义标识符、用户标识符。



核心:表达式一定有数值!

1、算术表达式:+,-,*,/,%

考试一定要注意:“/” 两边都是整型的话,结果就是一个整型。 3/2的结果就是1.

“/” 如果有一边是小数,那么结果就是小数。 3/2.0的结果就是0.5

“%”符号请一定要注意是余数,考试最容易算成了除号。)%符号两边要求是整数。不是整数就错了。

2、赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。

1、定义时,不可以连续赋值。

3、复合的赋值表达式:

int a=2;

a*=2+3;运行完成后,a的值是12。

一定要注意,首先要在2+3的上面打上括号。变成(2+3)再运算。

4、自加表达式:

自加、自减表达式:假设a=5,++a(是为6), a++(为5);

运行的机理:++a 是先把变量的数值加上1,然后把得到的数值放到变量a中,然后再用这个++a表达式的数值为6,而a++是先用该表达式的数值为5,然后再把a的数值加上1为6,

再放到变量a中。 进行了++a和a++后 在下面的程序中再用到a的话都是变量a中的6了。

口诀:++在前先加后用,++在后先用后加。

补充:

1、空语句不可以随意执行,会导致逻辑错误。

2、注释是最近几年考试的重点,注释不是C语言,不占运行时间,没有分号。不可以嵌套!

3、强制类型转换:

一定是 (int)a 不是 int(a),注意类型上一定有括号的。

注意(int)(a+b) 和(int)a+b 的区别。 前是把a+b转型,后是把a转型再加b。



1)字符数据的合法形式::

'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。

  '0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。

一般考试表示单个字符错误的形式:'65' "1"  

字符是可以进行算术运算的,记住: '0'-0=48

大写字母和小写字母转换的方法: 'A'+32='a' 相互之间一般是相差32。

2)转义字符:

转义字符分为一般转义字符、八进制转义字符、十六进制转义字符。

一般转义字符:背诵\0、 \n、 \’、 \”、 \\。

八进制转义字符: ‘\141’ 是合法的, 前导的0是不能写的。

十六进制转义字符:’\x6d’ 才是合法的,前导的0不能写,并且x是小写。

3、字符型和整数是近亲:两个具有很大的相似之处

   char a = 65 ; 

printf(“%c”, a); 得到的输出结果:a

printf(“%d”, a); 得到的输出结果:65



1、使用printf和scanf函数时,要在最前面加上#include“stdio.h”

2、printf可以只有一个参数,也可以有两个参数。

3、printf(“ 第一部分 ”,第二部分 );把第二部分的变量、表达式、常量以第一部分的形式展现出来!

4、

格式说明 表示内容 格式说明 表示内容

%d 整型 int %c 字符 char

%ld 长整型 long int %s 字符串

%f 浮点型 float %o 八进制

%lf double %#o 带前导的八进制

%% 输出一个百分号 %x 十六进制

%5d %#x 带前导的十六进制

举例说明:

printf(“%2d”,123 ); 第二部分有三位,大于指定的两位,原样输出123

printf(“%5d”,123 ); 第二部分有三位,小于指定的五位,左边补两个空格 123

printf(“%10f”,1.25 ); 小数要求补足6位的,没有六位的补0,。结果为 1.250000

printf(“%5.3f”,125 ); 小数三位,整个五位,结果为1.250(小数点算一位)

printf(“%3.1f”,1.25 );小数一位,整个三位,结果为1.3(要进行四舍五入)



1、scanf(“a=%d,b=%d”,&a,&b)

一定要记住是以第一部分的格式在终端输入数据。

在黑色屏幕上面输入的为 a=12,b=34才可以把12和34正确给a和b 。

2、特别注意指针在scanf的考察

例如: int x=2;int *p=&x;

scanf(“%d”,p);

补充:

1)scanf函数:

注意该函数的第二个部分是&a 这样的地址,不是a;

scanf(“%d%d%*d%d”,&a,&b,&c); 跳过输入的第三个数据。

2)如何实现两个变量x ,y中数值的互换

不可以把 x=y ,y=x; 要用中间变量 t=x;x=y;y=t。



注意:C语言中是用非0表示逻辑真的,用0表示逻辑假的。

C语言有构造类型,没有逻辑类型。

关系运算符号:注意<=的写法,==和=的区别!

if只管后面一个语句,要管多个,请用大括号!

1)关系表达式:

a、表达式的数值只能为1(表示为真),或0(表示假)。

如 9>8这个关系表达式是真的,所以9>8这个表达式的数值就是1。

如 7<6这个关系表达式是假的,所以7<6这个表达式的数值就是0

2)逻辑表达式:

核心:表达式的数值只能为1(表示为真),或0(表示假)。

a)共有&& || ! 三种逻辑运算符号。

b)!>&&>|| 优先的级别。

4)条件表达式:

  表达式1 ?表达式2 :表达式3

a、注意是当表达式1的数值是非0时,才采用表达式2的数值做为整个运算结果,当表达式1的数值为0时,就用表达式3的数值做为整个的结果。

5)switch语句:

a) switch只可以和break一起用,不可以和continue用。

b) switch(x) x:是整型常量,字符型常量,枚举型数据。

{case 1: …. 不可以是变量。

case 2: ….

}



1)三种循环结构:

a)for() ; while(); do- while()三种。

b)for循环当中必须是两个分号.

c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。

d) do-while()循环的最后一个while();的分号一定不能够丢,do-while循环是至少执行一次循环。

2) break 和 continue的差别

break:是打破的意思,(破了整个循环)所以看见break就退出整个一层循环。

continue: 是继续的意思,(继续循环运算),但是要结束本次循环,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环。

3)循环嵌套

就是有循环里面还有循环,一般两层是处理二维数组的。



1、函数:是具有一定功能的一个程序块,是C语言的基本组成单位。

2、函数不可以嵌套定义。但是可以嵌套调用。

3、函数名缺省返回值类型,默认为 int。

4、C语言由函数组成,但有且仅有一个main函数!是程序运行的开始!

5、一定要注意参数之间的传递

实参和形参之间 传数值,和传地址的差别。

传数值的话,形参的变化不会改变实参的变化。

传地址的话,形参的变化就会有可能改变实参的变化。

6、函数声明:

一定要有:函数名,函数的返回类型,函数的参数类型。不一定要有:形参的名称。

7、要求掌握的库函数:

a、库函数是已经写好了函数,放在仓库中,我们只需要如何去使用就可以了!

第六章

指针变量的本质是用来放地址,而一般的变量是放数值的。

1、int *p 中 *p和p的差别:简单说*p是数值,p是地址!

*p可以当做变量来用;*的作用是取后面地址p里面的数值

p是当作地址来使用。可以用在scanf函数中:scanf(“%d”,p);

2、指针变量两种初始化

方法一:int a=2,*p=&a;(定义的同时初始化)

方法二:int a=2,*p;  (定义之后初始化)

    p=&a;

十一

1、所谓数组,就是按一定顺序排列,具有某种相同性质的同类型变量的集合。这些变量具有相同的名字和数据类型。

2、定义格式:

基本数据类型 数组名[整型常量表达式];

3、二维数组定义格式:

基本数据类型 数组名[整型常量表达式] [整型常量表达式];

第一个数组是存行,第二个是存列。

二维数组的初始化:

基本数据类型 数组名[整型常量表达式] [整型常量表达式]={初始化数据};

十二

一: 结构体类型的声明格式为: struct 结构名{

数据类型1 成员名;

数据类型2 成员名;

数据类型3 成员名;

..........

数据类型n 成员名;

};

其中值得注意的地方有:

1:每一处的分号是必不可少的。

2:声明变量时,变量要写在“}”的后面,声明相同变量时,要用“,”隔开,结尾以“;”结束。

3:运用时可以想到基本数据类型的格式。

4:关键字一定不要写错。

访问结构体变量的成员格式:

结构变量名.成员名

注意要看之前的数据类型,且打印出来时也要把”结构变量名.成员名“加在”,“的后面。

二:共用体(union)

1: 在共用体变量中起作用的是最后一个存放的成员,在存入一个新成员后,原有的成员就都失去了作用。

2:共用体变量的地址和其成员地址都是同一地址。

3:不用给共用体变量赋值,还不能在定义共用体变量时对其初始化。

三:枚举型(enum)

声明枚举类型的语法形式为:

enum 枚举名{

标识符[=整型常数],

标识符[=整型常数],

...........

标识符[=整型常数],

};

注意枚举类型是按照整型常量规则,从0开始,依次是1,2,3,4,5,6..........,如果有在声明枚举变量时赋值,也是从0开始,到赋值,后在赋的值的基础上累加下去。

十三

1 指针的概念

所谓的指针,也称为指针变量,其内容储存了另一个变量的内存地址。

2 声明指针类型的变量

在C语言声明一个指针类型变量,也就是定义了一个指针的语法如下:

指向的变量的类型名 *指针变量名;

这里,指针变量的类型是“指向的变量的类型名 * ”,而不是“指向的变量的类型名”。列如

int *p

这里,变量p的类型为int*,而不是int、指针变量p可以储存任何int类型的变量的地址。

3 指针的使用

我们可以使用间接运算符*,来访问被一个指针指向的变量的值。假设我们声明了如下变量:

int number = 15;

int *pointer=&number;

int result = 0;

因为指针变量pointer包含了变量number的地址,所以可以按照如下方式,在一个求和的表达式中使用它:

result = *pointer + 5;

表达式*pointer等于pointer包含的地址中存储的值,而存储在number中的值为15,所以result的值最后为20.

说明:

间接运算符*可以让我们访问被一个指针指向的变量的值。

取址运算符&可以让我们获得一个变量的内存地址。

十四

1 函数的定义

函数的定义就是写出函数的全部内容来,即完成函数功能的程序块,它的一般格式为:

函数类型 函数名称(形式参数表){

说明语句序列

可执行语句序列

}

其中前两行构成函数的头,后面的用一对花括号括起来的部分构成函数。

2 函数的参数

从函数的形式上看,函数分为两类:无参形式,有参形式

无参函数的一般形式:

类型标识符 函数名(){

声明部分

语句

}

有参函数的一般形式:

类型标识符 函数名(形式参数表列){

声明部分

语句

}

有参函数比无参函数多了一个内容,即形式参数表列,在形参表中给出的参数成为形式参数,他们可以是各种类型的变量,各参数之间用逗号隔开。

3 函数的返回值

从函数的值来看,函数分为两类:

无返回值的函数:即Void函数,吴函数值的函数,一般用来执行指定的一组,类似于其他高级语言中的过程。

有返回值的函数:调用函数后,可以通过函数名带回函数值供主调函数使用。

函数的返回值由return语句返回。一般格式为:

return 表达式;

任何一个函数,只要执行到return语句,函数就结束运行。注意的是:一个函数只有一个返回值。

如 下列代码定义了一个无返回值的无参函数:

void printmessage(){

printf("欢迎来到函数学习");

}

int main(){

printmessage();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: