指针
我们知道变量定义的目的是向内存申请空间来存放变量,那么是如何查找变量在哪?答:通过地址,内存例也有地址,像我们生活有各地址,如:寝室地址,学校地址...,同样的内存也有地址。
指针变量是用来存放地址的变量。
例:
类型标识符* 变量名(int * pa;float* pb;);
"*"代表该变量为指针类型,类型标识符(int ,float,char)代表指针指向变量的类型
指针变量的大小为4个字节(32位平台)/8个字节(64位平台)
例:
...
int a = 10;
int* pa = &a;//&a取出a变量在内存中的地址存放到pa这个指针变量中
*pa;//通过“*”操作符可以间接访问变量a
...
结构体
用来描述一个复杂对象的类型,该类型位开发者自己创建
例:
...
struct stu
{
char name[30];
int age;
char sex[10];
...
};//分号带表结构体类型结束
...
如上使用关键字struct创建了一个stu的类型
如何使用该类型与访问该类型成员?
...
struct stu
{
char name[20];
int age;
char sex[10];
};
int main()
{
struct stu s1={"张三",20,"男"}//使用结构体类型stu创建s1的结构体变量
s1.name;//通过“.”操作符访问结构体成员变量
return 0;
}
结构体指针变量与变量的访问
...
struct stu
{
char name[20];
int age;
char sex[10];
};
int main()
{
struct stu s1={"张三",20,"男"}//使用结构体类型stu创建s1的结构体变量
s1.name;//通过“.”操作符访问结构体成员变量
struct stu* ps = &s1;//将结构体变量s1的地址取出存放到结构体指针变量ps中
(*ps).name;//还是通过“*”操作符来简介访问,但与之前不同需要用圆括号“()”括起来。但这样看起来不方便,写起来也不方便
ps->name;//通过"->"操作符来访问结构体变量成员,这种写法简洁明了
return 0;
}
注:“.”与“->”区别“.”运用在结构体变量,“->”运用在结构体指针变量