3.结构指针定义和初始化
1、什么是结构体指针?
用来存放结构体变量地址的指针变量。结构指针变量中的值是所指向的结构体变量的首地址。
2、结构体指针定义
struct 结构体名 *指针变量名;
//定义一个结构体
struct Car{
int lunzi;
int speed;
}car1;
struct Car *p=NULL; //定义一个结构体指针变量
p = &car1;//正确的
p = &Car;//错误的
*/
#include <stdio.h>
int main(int argc, const char * argv[]) {
//定义一个结构体
struct Car{
int lunzi;
int speed;
}car1;
//定义一个结构体指针
struct Car *p=NULL; //定义一个结构体指针变量
p = &car1;//正确的
//p = &Car;//错误的
//结构体名:Car
//结构体变量名 car1
//结构体指针: p
return 0;
}
4.结构体指针间接访问成员值
1、结构体变量的成员值
struct Student{
int age;
char *name;
};
//定义一个结构体的变量
struct Student stu1={18,"张三丰"};
//结构体变量的成员值有2个
// stu1.age 值 18
// stu1.name 值 张三丰
2、用结构体指针间接的访问结构体变量的成员值
//
struct Student *p = &stu1;
//使用p 获取 18 张三丰
有两种方法:
1) (*p).age 访问年龄 (*p)--->stu1
(*p).name 访问姓名
2) p->age 访问的年龄
p->name 访问的是姓名
注意:p一定是一个结构体指针
stu1->name; //错误的
#include <stdio.h>
int main(int argc, const char * argv[]) {
struct Student{
int age;
char *name;
};
//定义一个结构体的变量
struct Student stu1={18,"张三丰"};
//结构体变量的成员值有2个
// stu1.age 值18
// stu1.name 值 张三丰
// 2、用结构体指针间接的访问结构体变量的成员值
struct Student *p = &stu1;
printf("姓名:%s,年龄:%d\n",(*p).name,(*p).age);
printf("姓名:%s,年龄:%d\n",p->name,p->age);
return 0;
|