指针:一个变量的地址称为该变量的“指针”,如果有一个变量专门用来存放另一变量的地址(即指针),则它称为“指针变量”。即:指针是一个地址,指针变量是存放地址的变量。
(1)定义指针变量的一般形式为:基类型 *指针变量名,如:int *pointer_1;float *pointer_2;char *pointer_3等,在定义指针变量时必须指定基类型。
(2)两个相关的运算符:&:取地址运算符,使一个指针变量得到另一个变量的地址;*:指针运算符,取指针所指向的对象的内容,如:&a为变量a的地址,*p为指针变量p所指向的存储单元的内容。
(3)int i,j;
int *pointer_1,*pointer_2;
pointer_1=&i;
pointer_2=&j;
表示将变量i的地址存放到指针变量pointer_1中,因此pointer_1就“指向”了变量i,j与此类似。指针变量前面的*表示该变量的类型为指针型变量,指针变量名为pointer_1、pointer_2
四、结构体
结构体类型变量的定义方法:
(1)先声明结构体类型再定义变量,如
struct student student1,student2;
struct student
{int num;
char name[20];
char sex;
int age;
};
(2)在声明类型的同时定义变量,如
struct student
{int num;
char name[20];
char sex;
int age;
} student1,student2;
一般形式为:
struct 结构体名
{
成员表列
}变量名表列;
(3)直接定义结构体类型变量
一般形式为:
struct
{
成员表列
}变量名表列;
除了可以直接使用C提供的标准类型名(如int、char、float、double、long等)和自己声明的结构体、共用体、指针、枚举类型外,还可以用typedef声明新的类型名来代替已有的类型名。例如:typedef int INTEGER; typedef float REAL;指定用INTEGER代表int类型,REAL代表float。这样,以下两行等价:①int i,j; float a,b; ②INTEGER i,j; REAL a,b;
用typedef struct声明结构体类型:
typedef struct
{int month;
int day;
int year;
}DATE;