前言
博主在几年前的C语言后中,结合自身学习情况和学习感悟在当时的一个寒假做了两份C语言学习的经验总结,分别为 《C语言学习基本框架》 和 《C语言学习基础程序》,
现在把它们分享出来,供大家交流学习,如果能给初学C语言的小伙伴们提供一些帮助也是不错的,想当初我也是从C语言的折磨中走出来的,吼吼吼!
一、C语言模式
(1). C程序的基本构成:
- 1.主函数 int main()
- 2.变量定义和初始化 int n=345
- 3.函数的调用和文件包含命令 #include
- 4.基本输入输出语句 如:scanf(…), printf(…)
- 5.结束语句 return 0(void类型不需要)
(2). C程序的简单算法:
- for循环语句、
- while-do循环语句、do-while循环语句、
- if-else控制语句、
- switch-case控制语句…
(3). C语言基本数据类型:
内置类型:
- 1.整形: int
- 2.实型(浮点型): float
- 3.字符型: char
- 4.空类型: void
自定义类型:
枚举型: enum
(4). 运算符及表达式:
-
特有表达式:自增++、自减–
-
复合表达式:+=、-=、*=、/=、%=
-
条件表达式:表达式1? 表达式2:表达式3
-
逗号表达式:表达式1,表达式2,表达式3…
-
关系运算符:< <= > >= == !=
-
逻辑运算符:&& || !
(5). 类型转换:
- (类型标识符)转换对象 例:a=(int)3.14
二、函数
(1).函数的自定义与调用:
定义:返回值类型标识符 函数名(形参列表)
{
一组语句;
};
- 形参格式:(类型标识符1 变量1,类型标识符2 变量2… )
- 调用:被调函数名(实参列表)
- 实参格式:(表达式1,表达式2…)
(2). 函数的声明与定义:
- 函数声明:返回值类型标识符 函数名(形参列表)例:int total(int n)
- 函数定义:要求编译器生成代码并为之分配储存空间.
注:(只有当函数被调用时,函数才分配储存空间,才有了定义.)
(3). 函数与变量的储存类别:
- 自动局部变量auto:自动局部变量也称“自变量”,其生命周期是一次函数的调用时间.
- 静态局部变量static.:其生命周期是从初始化开始,到整个程序结束.与自变量有共同的作用域.
- 外部变量:在函数外部定义的变量称为外部变量,它的生命周期从编译阶段开始,直到程序结束. 它的作用域是其定义后的所有函数.
(4). 模块化程序设计:
所谓模块化程序设计,就是按类划分和管理函数,每一类包含在一个源文件(.c文件)中,每一个源文件,称为一个模板,可以独立编译,其中一个模块包含主函数(main函数),称为主控模块,每一个模块可以独立编译,但不能运行;编译之后,再进行模块之间的链接,形成一个可运行的程序.
三、一维数组和指针
(1). 指针和指针传递:
- 指针;一个对象的(地址,类型)称为该对象的指针.
- 指针传递:把一个对象的指针作为参数传递给形参指针传递.
- 指针的定义:类型标识符 *指针变量名 ,例: int *p
- 指针的初始化:int *p=&x;(&为指针提取符)
(2). 一维数组:
定义:一维数组是一个类型相同、空间相邻、个数有限的对象序列,每一个对象称为数组元素,数组元素的 个数称为数组长度和数组容量.
- 格式:类型标识符 数组名[数组长度] 例: int a[5]
- 初始化格式:int a[5]={5,10,15,20,25} (初始化数据不足,系统用0来填充)
(3). 一维数组和指针:
两者关系: 如果用数组名表示数组首元素的指针,对一个对象,其指针加1的结果是其后续的指针,减1的结果是其前驱的指针,而一个对象的前驱和后续分别表示与该对象前后相邻类型相同的对象.
- 例:int a[5]={5,10,15,20,25,}
- 数组名a表示数组首元素a[0]指针,a+1表示a[1]的指针…,如果指针前加上间接访问符* ,则可直接表示相应元素a=a[0],(a+1)=a[1]…
(4). 动态数组:
-
动态分配函数malloc: void*malloc(unsigned size)
-
计算类型长度函数sizeof: sizeof(类型说明符,数组名或表达式);
-
常见使用: int p=(int )malloc(5sizeof(int));
四、C字符串
(1). 字符常量和字符串变量:
- 常量:“China"
- 变量:char a[]
- 赋值:char a[]="China"
(2). 字符串标准输入输出函数:
-
字符串标准输入函数:
int gets(char c) -
字符串标准输出函数:
int puts(char c)
(3). 字符串基本操作函数:
字符串基本操作函数包含在标准头文件<string.h>中.
- 求字符串长:
int strlen(const char c) - 字符串复制:
char strcpy(char c,const char c1) - 字符串连接:
char strcat(char c,const char c1) - 字符串比较:
int strcmp(char c,const char c1) - 改变字符串的大写:
char strupr(const c) - 改变字符串的小写:
char strlwr(co