C语言是一门面向过程的语言。所谓面向过程就是以事件作为我们编程的中心。比如说我要去复试,首先应该将初试成绩达到复试线,然后再进行复试复习,然后坐车去往考点。通过这个例子我们知道了,面向过程就是一步一步地去设计步骤最终完成事件,是以事件为导向。
所谓面向对象就是以对象作为中心,然后以对象的行为以及属性去构成一个完整的事件。两者之间的对比可以见我考研专业问题的第八弹的C语言与c 的区别那一题!
2、c语言的数据类型?
这个问题最容易问到的我感觉就是各种类型所占到的字节长度,以及他们的数据范围,所以大家一定要知道。比如说,int型在VS编译器或者VC6中都是4个字节,char型是一个字节(这里一定要注意不同编译器是有不同的)。还有就是指针类型和数组类型大家一定要掌握,考研专业问题的第八弹的指针和数组那一题一定要掌握,今年又有小伙伴被问到了。这里就不一一例举了,大家自己查教材都是能很快查到的,而且可以加深印象!
3、C语言的三种基本的结构化程序设计方法?
顺序结构:最基本的一种结构,执行顺序就按照从上到下执行就行啦,执行起来就是一溜烟地执行完。
选择结构:顾名思义就是我们在执行下一条语句之前会根据一个条件做出判断,我们应该选择下面哪一条或者一段语句。这样就引入了分支的概念,程序也就可以开枝散叶了。
循环结构:当我们需要重复处理一段相同逻辑的代码时我们就可以采用循环结构,这样就可以大大减少我们的代码量,也便于我们理解程序逻辑。
按照我自己的理解是这个文件是包含着一些我们已经写好的函数以及定义好的变量,这样我们在写程序的时候只需要把.h包含进去,一些函数以及变量就可以使用啦!比如说我们写c语言的时候就要写#include<stdio.h>,这样我们的一些printf以及sizeof等函数就可以使用啦。其中#是一个预编译符号,就是在我们编写的程序运行前把文件里的东西给安排上,函数以及变量等都准备好。就好比吃饭前把碗筷准备好一样!
5、c语言的变量?局部变量、全局变量。
全局变量是整个程序都可访问的变量,谁都可以访问,生存期在整个程序从运行到结束(在程序结束时所占内存释放);
而局部变量存在于模块(子程序,函数)中,只有所在模块可以访问,其他模块不可直接访问,模块结束(函数调用完毕),局部变量消失,所占据的内存释放。
操作系统和编译器,可能是通过内存分配的位置来知道的,全局变量分配在全局数据段并且在程序开始运行的时候被加载.局部变量则分配在堆栈里面。
还有一个小考点就是如果没有初始化的情况下,局部变量的值是随机的,而全局变量的值为零。
静态变量、动态变量。
一般情况下就是静态变量会加static关键字,表明这是一个静态变量。动态变量就比如说int a这种。下面要说一下四个关键的知识点:
(1) 动态全局变量:
作用域为整个项目,即最终编译成可执行文件的所有文件中均可以使用动态全局变量。跨文件的全局变量一般都会加一个extern。
生命周期为从程序运行到程序退出,即贯穿整个运行时间。
无显式初始化时默认初始化值为0。
(2 )静态全局变量:
作用域为当前文件,从定义/声明位置到文件结尾。
生命周期为从程序运行到程序退出,即贯穿整个运行时间。
无显式初始化时默认初始化值为0。
(3) 动态局部变量:
作用域为当前函数,从定义位置,到其所在的{}的结束位置。
生命周期为从函数调用到函数退出。
无显式初始化时默认初始化值为随机值。
(4) 静态局部变量:
作用域为当前函数,从定义位置,到其所在的{}的结束位置。
生命周期为从程序运行到程序退出,即贯穿整个运行时间,当下次函数调用时,静态局部变量不会被再次初始化,而是沿用上次函数退出时的值。
无显式初始化时默认初始化值为0。
指针是一种内存地址,而指针变量是一种表示内存地址的变量。我们如果要想使用这个地址里面所存的数据,那么我们可以加入*来实现,这个*我查到了叫做间接寻址运算符。还有就是以下几个知识点要清楚,指针常量、常量指针、指针数组、数组指针。
指针常量的本质是一个常量,并且使用指针来修饰它,那么说明这个常量的值应该是一个指针,其格式应为:int * const p。
常量指针本质是指针,常量修饰它,表示这个指针是一个指向常量的指针(变量)。指针指向的对象是常量,那么这个对象不能被更改。
指针数组在本质上是一个数组,只不过我们的数组里面全部存的都是指针变量。
数组指针本质上一个指针,它是指向数组首地址的一个指针。
这四个知识点我们可以自己敲一敲代码试一试。
这里还要注意一下指针和数组的关系与区别,这个可以看我以前的文章,链接在下面。
7、C语言的模块化编程的好处?
8、数组与链表的区别?