结构体指针 C 面向对象程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ip = &i; *ip = 2;
i = 2;
直接访问
指针变量的定义
形式: 形式: 类型说明符 *指针变量名 此“*”说明定义的是指针变 量 思考:为什么指针变量在定义时要说明其类型呢? 思考:为什么指针变量在定义时要说明其类型呢?
ip
int i=2, j; int *ip; ip = &i; j = *ip;
struct student num; { long num; name[20]; char name[20]; sex; char sex; score; float score; }; stu_1; struct student stu_1; *p; struct student *p; 一个结构体变量的指针就是该变 p = &stu_1 ; 量所占据的内存段的起始地址。 量所占据的内存段的起始地址。
指针的概念
一个变量, 专门用来存放另一个变量的地址, 一个变量,若专门用来存放另一个变量的地址,则该变量 称为指针变量。 称为指针变量。 int i , *ip; ip=&i; ip是指针变量 是指针变量
有关指针的运算符
(1) & : 取地址运算符,用于取操作对象的地址。 取地址运算符,用于取操作对象的地址。 指针运算符, 指针变量所指向的内存单元中的内 (2) * : 指针运算符,取指针变量所指向的内存单元中的内 容 ip int i; i 2000H int *ip; 2000H 2 间接访问
struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; };
/* /* /* /* /* /*
学号 姓名 性别 年龄 成绩 地址
*/ */ */ */ */ */
结构体指针
指向结构体变量的指针。 指向结构体变量的指针。例:
Baidu Nhomakorabea
2000H
2000H
i 2 j 2
指针变量的引用
(1) 在利用指针变量进行间接访问之前,必须使其指向某一确 在利用指针变量进行间接访问之前, 定的变量,避免使用“悬挂指针” 定的变量,避免使用“悬挂指针”。 (2)该指针变量的类型与它所指向的变量的类型应该一致。 该指针变量的类型与它所指向的变量的类型应该一致。 该指针变量的类型与它所指向的变量的类型应该一致
char a,*ap; char a,*ap; int b,*b *bp; *b *ap=‘A’; *a ap = &a; *ap=‘A’; *a bp = &b; *bp=25’; *b
a =‘A’;
结构体
是一种数据类型,它把互相联系的数据组合成一个整体。 是一种数据类型,它把互相联系的数据组合成一个整体。例:
(1)给结构体变量stu_1赋值 (1)给结构体变量stu_1赋值 给结构体变量stu_1 89101; stu_1.num = 89101; Lin“) strcpy(stu_1.name ,"Li Lin ); stu_1.sex = ‘M’ ; stu_1.score = 89.5; 89.5;
(2)结构体指针p 通过指向运算符- (2)结构体指针p,通过指向运算符-> 结构体指针 引用结构体中的成员。 引用结构体中的成员。例 p->num p->name p->sex p->score
(3)结构体指针p,通过成员运算符.引 (3)结构体指针p 通过成员运算符. 结构体指针 成员运算符 用结构体中的成员。 用结构体中的成员。例 (*p).num (*p).name (*p).sex (*p).score