C语言总结
来源:互联网 发布:nginx http 307 编辑:程序博客网 时间:2024/06/05 02:17
1、程序语言的发展
机器语言、汇编语言、高级语言;
2、简单程序开发的基本步骤:
①分析问题,建立数学模型;
②确定数据结构和算法;
③编制程序;
④调试程序。
3、算法的基本特征:有穷性、确定性、有效性、有零个或多个输入、有一个或多个输出。
4、编码实现
①编写源代码;
②将源代码编译成目标代码;
③链接源代码成为可执行代码;
④运行。
5、编程语言的组成
其中主要有:基本字符集、标识符、关键字、语句和标准库函数。
C语言规定,标识符由C语言字符集中的字母、数字或下划线组成,她的第一个字符必须是字母或下划线。C语言还规定,标识符中同一个字母的大写与小写被看做是不同的字符。
C语言不能用关键字命名。
6、一个完整的C程序应符合以下几点:
①C程序是以函数为基本单位,整个程序由函数组成。其中主函数main( )是一个特殊的函数,一个完整的C程序至少要有一个且仅有一个主函数,它是程序启动时的唯一入口。出主函数外,C程序还可以包含若干其它C标准库函数和用户自定义的函数。这种函数结构的特点使C语言便于实现模块化的程序结构。
②函数是由函数说明和函数体两部分组成。函数说明部分包括对函数名、函数类型、形式参数等的定义和说明;函数体包括对变量的定义和执行程序两部分,由一系列语句和注释组成,整个函数体由一对花括号括起来。
③语句是由一些基本字符和定义字符按照C语言的语法规定组成的,每个语句以分号结束。
④C程序的书写格式是自由的。一个语句可写在一行上,也可分写在多行上。一行可以写一个语句,也可写多个语句。注释内容可以单独写在一行上,也可写在C语句的右侧。
7、数据在计算机中的表现形式
计算机内存中使用字节作为基本的存储单位来存储数据,字节中只能存储的是0或1.
①整数的表示方法;
②实数的表示方法;
③字符的表示方法。
8、在编程语言中对数据进行分类
数值可以分为两大类:整型、浮点型
①char的大小为一个字节;
②short的长度不会超过long;
③unsigned的长度等于int;
④int的长度不会超过long;
⑤float的长度不会超过double。
9、数据在编程语言中的表现形式:常量、变量
常量分为:字面量、符号常量
字面量可分四种类型,分别是整型常量、实型常量、字符常量、字符串常量。
变量名:
①变量名必须以字母字符开头;也可以是下划线开头,但是不推荐这样做;
②在变量名中的任意地方都可以使用任何字母、数字或下划线;
③变量名长度不限;
④变量名不允许出现空格或非字母字符,比如+或-;
⑤变量名不能是C语言的关键字;
⑥变量名对大小写敏感;
10、要声明一个变量名需要提供两方面的信息:变量的名字和他的数据类型,其目的是由变量的数据类型决定变量的存储结构,以便使C语言的编译程序为所定义的变量分配内存空间。可以在同一行中声明多个同一类型的变量,只需要将变量名用逗号隔开即可。。变量初始化时必须注意的是,不要把变量初始化为其数据类型取值之外的值。
11、数据的输入与输出
①格式化输出函数printf
结构 printf(“格式控制字符串”,输出表列);
②格式化输入函数scanf
结构 scanf(“格式控制字符串”,地址列表);
12、表达式
一个操作数:一个简单变量、字面常量或符号常量。
操作数可以是常量、变量或二者的组合。
13、运算符
①算术运算符;
②赋值运算符;
③增量和减量运算符;
④关系运算符;
⑤逻辑运算符;
a、逻辑与:C语言的逻辑与运算符“&&”指如果连接的两个关系表达式的值同时为1,则整个逻辑表达式的值为1,否则为0 。
b、逻辑或:c语言的逻辑或运算符“||”指连接的两个表达式中只要有一个关系表达式的值为1,则整个表达式的值为1,只有当所有关系表达式值都为0时,逻辑表达式的值才为0 。
c、逻辑非:C语言的逻辑非运算符“!”指使用逻辑运算符的关系表达式的值为0时,逻辑表示的值为1,否则为0 。
逻辑非运算符优先级最高,其次是算数运算符,然后是关系运算符,再次是逻辑与运算符和逻辑或运算符,最低的是赋值运算符。
⑥条件运算符;
在条件运算符中,表达式1是关系表达式,而表达式2和表达式3可以是任意表达式。
条件运算符的执行顺序:先求解表达式1,若表达式一位非0(真)则求解表达式2的值,此时表达式2的值就作为整个条件表达式的值。若表达式的值为0(假),则求解表达式3,那么表达式3的值就是整个条件表达式的值。
⑦数据类型强制转换运算符;
自动转换、强制转换。
⑧特殊运算符。
长度运算符sizeof;
取址运算符&。
14、C语句 ①流程控制语句 a、选择语句
b、循环语句
c、转移语句
②表达式语句
③复合语句
④空语句
15、选择结构的程序设计
简单if语句
if(表达式){
语句1
}
if_else语句
if(表达式){
语句1
}else{
语句2
}
switch语句
switch(表达式){
case 常量表达式1:语句1;
case 常量表达式2:语句2;
case 常量表达式3:语句3;
case 常量表达式4:语句4;
.......
case 常量表达式n:语句n;
defaule:语句n+1;
}
16、无条件转向语句
goto 语句标号;
、、、
语句标号;
17、循环结构的程序设计
循环结构有两种:当型循环和直到型循环。
C语言中的当型循环语句有while和for语句,do_while语句可实现直到型循环。
while(表达式){
循环体语句
}
说明:
①表达式控制循环的语句,他可以是任何类型的表达式;
②循环体语句语法上定义为一条语句,若循环体含有多条语句,则必须用花括号吧他们括起来,成为复合句;
③while语句的特点是:先判断后执行。若表达式一开始就为假,则循环体一次也不循环。
do_while
do{
循环体语句
}while(表达式);
①do_while语句的表达式是任意表达式,是控制循环的条件。
②do_while语句的特点使先执行后判断,因此,循环体至少要执行一次。
③do_while语句实现的循环,他重复执行循环体,直到表达式为假才退出循环。
for(表达式1;表达式2;表达式3){
循环体语句
}
表达式1通常是为循环变量为赋初值表达式;表达式2是控制循环的表达式;表达式3通常是改变循环变量值得表达式。
18、break和continue
break终止他所在的switch语句或循环体语句的执行;
continue结束本次循环进行下一次循环。
19、数组和字符串
所谓数组,就是按照一定顺序排序,具有某种相同性质的同类型变量的集合。这些变量具有相同的名字和数组类型,在内存中顺序排列,并通过下标区分,所以也叫下标变量。数组中的个数据项称为数组元素,用数组名和下表表示。
一维数组的定义
数组类型 数组名[整形常量表达式];
说明;
a、数组类型是数组中的全体数组元素的数据表达式;
b、数组名用标识符表示,整型常量表达式代表数组具有的数组元素个数;
c、数组元素的下标一律从0开始;
d、编译程序为数据开辟连续的存储单元用来顺序存放数组的各数组元素。用数组名表示该数组存储区的首地址。
二维数组的定义
数组类型 数组名[整形常量表达式1] [整形常量表达式2]
字符数组与字符串
字符串在内存中的存放形式是按照字符的排列顺序存放,每个字符占用一个字节,并在末尾添加‘\0’作为终结标记。
20、结构体
struct 结构名{
数据类型1 成员名1;
union 共用体名{
数据类型 成员名;
数据类型 成员名;
......
}共用体变量名;
在使用共用体类型数据时要注意一些特点:
(1).同一内存段可以用来存放几种不同类型的成员,但是某一时刻只能存放其中一种。也就是说,在某一瞬时只有一个成员起作用。
(2).共用体变量中起作用的是最后一个存放的成员,在存入一个新成员后,原有的成员就失去了作用。
(3).共用体变量的地址和其成员地址都是同一地址。
(4).不同对共用体变量赋值,也不能在定义共用体变量时对其初始化。
22.枚举类型:
enum 枚举名{
标识符[=整型常数],
标识符[=整型常数],
......
标识符[=整型常数],
};
23、 在c语言中,定义了一个特殊的数据类型——指针类型。指针类型的变量是专门
用来存储某个变量的内存地址。这样,我们就可以从指针变量的值取得运行时确切的地址了。
eg: int a; <——4个字节 2000 2001 2002 2003
int b; <——4个字节 2004 2005 2006 2007
int a=3;
printf("%d",a); 执行:根据变量名与地址的对应关系,它会找到变量a的地址2000,然后从2000开始的连续4个字节中取出数据,将它输出。
scanf("%d",&a); 首先将键盘所输入的值送到地址为2000开始的整型存储单位中。
定义指针的语法:
指向的变量的类型名 * 指针变量名;
eg: int i , j ;
int *pointer1 , *pointer2 ;
pointer1 pointer2都是指向整形变量的指针变量,左边的int是在定义指针变量时必须指定的基本数据类型, 指针变量的基本数据类型用来指定该指针
变量可以指向的变量类型。【指针类型必须同变量的类型名一样】
eg: #include<stdio.h>
int main(void){
char a[ ]="welcome";
char *pointer;
pointer=a;
printf("%s",pointer);
return 0;
}
24、
※函数的定义和返回值
*任何函数(包括主函数main())都是由函数说明和函数体两部分组成。根据函数是否需要参数,可将函数分为无参函数和有参函数两种。
*在C语言中,所有函数(包括主函数main())都是平行的。一个函数的定义,可以放在程序中的任意位置,主函数main()之前或之后。但在一个函数的函数体内,不能再定义另一个函数,即不能嵌套定义。
*有参函数的返回值,是通过函数中的return语句来获得的。
*调用函数中无return语句,并不是不返回一个值,而是一个不确定的值。为了明确表示不返回值,可以用“void”定义将函数成“无(空)类型”。
※函数的调用
*切记:实参的个数、类型和顺序,应该与被调用函数所要求的参数个数、类型和顺序一致,才能正确地进行数据传递。
*函数的递归调用是指,一个函数在它的函数体内,直接或间接地调用它自身。
*直传递:当形参是普通变量,对应的实参可以是普通变量、常量、表达式
*地址传递:当形参是指针或数组时,对应的实参可以是普通变量的地址、数组名、实参
- 【总结】C语言总结!!!
- [C语言]C总结
- C语言变量总结
- C语言要点总结
- C语言总结
- C语言输入输出总结
- C语言static总结
- C语言优先级总结
- C语言static总结
- C语言总结
- C语言输入输出总结
- c语言学习总结
- C语言输入输出总结
- C语言输入输出总结
- C语言总结
- C语言学习总结
- 嵌入式C语言总结
- C语言总结(1)
- Scala学习笔记2 (Lang下篇)
- 编码解码 Unicode to ascii
- setTimeout与多线程
- zzulioj--1827--石锅全拌(区间求和水题)
- Scala学习笔记2 (Lang上篇)
- C语言总结
- C# Enum,Int,String的互相转换
- Scala 学习笔记1(介绍)
- Vectors.dense()
- Congratulations for getting IEEE SPL cover picture
- 卡尔曼滤波
- 《AndroidStudio每日一贴》10. 选择查找结果
- Android MotionEvent传递流程 源码笔记
- translate xml参数讲解