函数
在C语言程序中除了有main函数,还能定义其他函数,这些函数能使代码变得简洁,更方便阅读。这些函数一般有其特有的功能,并且这些函数还能被反复使用,当写一些大程序时能大大减少重复的代码量,减少工作量,提高效率。
如写一个模拟计算器功能的程序,可以在main函数外写一个add函数来实现加法功能。
数组
数组是一些相似元素的集合,由数组名,数组类型,数组元素个数三部分组成。
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
arr为数组名,int为arr的数组类型,10代表arr数组中有10个元素。
C语言规定,数组元素下标从0开始,即arr数组的第一个元素是arr[0],最后一个元素是arr[9]。
数组的初始化分为完全初始化和不完全初始化。
int arr[10] = { 1,2,3,4,5,6,7,8,9 };
当数组为不完全初始化时,未初始化的元素默认初始化为0。以上面数组为例,arr[9]=0。
关键字
关键字typedef可以将类型重命名。
typedef unsigned int unit_32。
这样就将unsigned int重新命名为unit_32,unit_32就是unsigned int的一个别名。
关键字static是用来修饰函数和变量的
修饰局部变量,static修饰局部变量会改变局部变量的生命周期,使局部变量即使出了作用域依然存在,直到程序结束。
修饰全局变量,会改变该全局变量的连接属性,全局变量可以在多个源文件中使用,但当用static修饰后,就只能在本源文件中使用。
函数被修饰后只能在本源文件中使用。
define定义的常量和宏
定义常量:#define MAX 1000
此代码将MAX定义为一个常量,其值为1000。
定义宏:#define ADD(x,y) ((x)+(y))
宏和函数有些相似,但宏在代码执行时,会将ADD(x,y)替换为((x)+(y)),和函数有相似功能,但并不能代替函数。
指针
指针又称指针变量,指针中存放的是地址。
int* a=&b,a就是一个指针,其中存放的是一个int型变量b的地址。"&"的作用就是取出元素地址。
在内存中为了方便管理,将内存分为一个个内存单元,每个内存单元大小为一个字节。把每个内存单元都编好了一个号。
指针的大小是一个固定的值,是由编译平台决定的,如果是32位,那么指针大小为4个字节,在64位上大小为8个字节。
结构体
当需要描述一些复杂对象时,只有原本的int,char等不够描述。如果需要描述一个学生的信息:姓名,年龄,性别,学号等。
基本方式如下:
struct stu
{
char name[20];
int age;
char sex[5];
char id[15];
};
其中的name等被称为结构体的成员。
后面只需要赋予名字就可以了,如:struck stu x={"张三",15,"男",243788237;};
想要打印结构体的成员就要用到"."操作符。
printf("%s",s.name);
除此之外还可以用"->",这是指针的用法。需要创建一个指针变量。
struct stu*px=&s;
printf("%s",s->name);