梳理一下c语言基础知识。 一、基础慨念 1、一个C程序由头文件和函数组成。  2、输入(scanf)输出(printf)函数 scanf,printf函数是由系统定义的标准函数,可在程序中直接调用  3、标识符 给变量或者函数起的名字就是标识符,标识符可以是字母、数字、下划线_组成的字符串,并且第一个字符必须是字母或下划线。 注意:标识符不能是C语言的关键字,严格区分大小写。 4、基本数据类型 在C语言中数据是有类型的,C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。 
5、变量  一般在main()里面(包括定义的函数里面)是局部变量 main外面是全局变量。 注意局部变量会屏蔽全局变量,少用全局变量可以提高程序效率 6、getchar()函数——获取一个字符,回车也是一个字符,所以可以用来吸收回车 putchar()函数用来输出一个字符。
二、语句 1、条件语句 (1)、if语句   (2)、switch语句  2、循环语句 (1)、for循环 (2)、while循环和do…while   3、跳转语句 break; 直接跳出当前条件语句或循环语句,能且只能跳出当前的一个语句。 continue; 在条件语句中表示什么都不做(替代空语句);在循环语句中表示 直接进入下一轮循环,不执行完当前循环 。 goto; 跳转到指定位置(该位置必须有声明) 三、函数 函数是一个功能模块,它把实现某个功能的代码快包含起来,并起一个函数名,供别人使用,什么是函数 如printf函数,system函数。是程序运行当中包装起来的一个步骤。  函数可以多级调用,函数调用中,传参就是一个赋值的过程!!!实际参数的值给形式参数 形式参数作用域仅限该函数,形式参数也是一个局部变量,有自己的内存空间。
一般函数定义的几种情况: 函数定义和调用(有多个参数无返回值) 
四、数组 1、数组的特征  2、数组的定义方式  数组中的中括号[]在定义一个数组的时候,才表示数组的大小,其余如何时候都表示用下标来访问数组 3、数组的获取和输出  4、计算数组的大小  5、数组的遍历  6、数组和函数  五、指针 1、定义和概念 int* p; 或者int *p = &a; 变量名p,里边存放的是地址编号;int* 是数据类型,表示变量P是存放int类型变量的地址的一个指针变量; p = &a; 给指针变量赋值 *p 指以p内容为地址的变量。 指针就是地址,地址就是指针,地址是内存单元的编号。 只有在定义一个指针变量的时候,才是指针的标识符,其它情况,都是一个运算符,此时* 代表的是一个运算符,跟±*/类似,该运算符的功能是 取出地址中数据的值(取内容) 2、指针与数组  3、指针数组与数组指针   4、函数指针  5、为什么要使用指针  6、无类型指针  7、内存分配和内存泄露问题 动态内存分配—malloc(); realloc(); 补充分配内存;  六、字符串 1、字符串的定义方式  2、字符串的存储方式和如何计算字符串的大小   从上图我们看到创建的字符串大小为3,而数组的大小和元素个数都是4,原因是什么呢? 因为字符串的存储方式,字符串在内存中除了有效字符外,还会自动在后面补一个'\0'; ,作为字符串的结束标识。 所以不能用sizeof 来计算字符串的大小(有效字符的个数)。要用strlen ,它在计算字符串大小的时候,遇到'\0' 后,就结束计数。  3、字符串的常用操作函数        七、结构体 1、结构体的定义使用和访问  2、结构体数组和结构体指针数组  3、结构函数指针  4、结构体大小计算(对齐方式)  七、typedef 关键字 typedef 作为C语言的关键字,作用是为一种数据类型定义一个新名字 这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等) 和普通类型匹配,通过名字来获取一些信息  和struct来匹配为了代码编写简洁 
八、链表 1、链表的静态创建  2、链表的遍历  3、统计链表节点个数和查找    4、链表指定节点后方插入新节点  5、链表指定节点前方插入新节点  6、链表指定节点的删除  7、链表的动态创建——头插法  8、链表的动态创建——尾插法 
|