- 3
- 0
- 约1.73万字
- 约 63页
- 2017-05-09 发布于四川
- 举报
《C/C程序设计》第06章〔复合数据类型〕
6.1 指针类型 概念: 旅馆房间、房间编号、房间名称、派房牌(上写房间号)。 1)地址 给内存单元(一般是字节)的编号 。计算机根据它找到对应的字节进行访问(存取)。 高级语言中定义一个变量,编译时根据其类型分配相应数目的字节(如int 型分2个字节,float 分4个字节),将变量名与对应内存字节映射。 变量名 地址 内存单元 2)指针 给变量、数组、结构体、函数等分配的内存单元或块区的首地址。 假如有:long m=56000 则 : m 就是 m的指针或者说是 m所占内存单元的首地址。此例中,56000就放在从这个地址开始的连续四个字节中。 3)指针变量 定义一种特殊变量,这种变量专门存放指针,用它也可找到(指向)变量、数组、结构体、函数,这样的变量 称作指针变量。 按变量是直接寻址;按指针变量是间接寻址。 由于变量、数组、结构体、函数等所分配的内存单元或块区的大小及结构不同,指针变量因而也要定义成相应的类型,不能混用。 [例] 交换两数。 void swap( ); main( ) {int a, b; scanf(%d%d”,a,b); swap(a, b); printf(“%d,%d”,a,b); } void swap( int *p1, int *p2) {int t; t=*p1, *p1=*p2, *p2=t ; } 变量的指针变量 1) 指针变量的定义 类型标示符 * 变量名 ; [例] int *p1, *p2; 2) 指针变量的赋值 指针变量=变量 [例] 先定义后赋值:p1=a; p2=b; 定义时赋初值: int a, *prt=a; 其中: 是取指针(地址)运算符。 赋初值问题:一个指针变量被定义后,在赋予某一变量的指针以前,其值是随机的,这个随机数可能恰好是系统区的某单元的地址。在系统不知和不受系统管理的情形下改写其中内容是危险的。变量的地址是由系统分配和管理的,因而是安全的。 3)指针变量的使用 p1=a; p2=b; scanf(“%d%d”, p1, p2); t =*p1; *p1=*p2; *p2= t; 其中:* 号是取值运算符。 * 与 是一对互逆运算。 例如:*(a) = a ; ( *p ) = p *指针变量 = 变量 例如: p=a ; *p 就是a ; 定义时的 * 与使用时的 * 含义不同,前者表示定义的是指针变量;后者是对变量的取值运算。 定义了一个某类型的指针变量后,它可以指向任意一个同类型变量。 4)指针变量作函数参数 主调函数 被调函数 实参 形参 a p p p 6.4 结构体类型一、概述 记录型数据与结构体 一组相关的不同数据类型的数据项,可作一个整体来处理。PASCAL中称“记录型”数据,C中称结构体类型数据。与数组有明显不同,数组要求其所有成员的类型、长短一样结构体类型和结构体变量。 二、定义结构体的类型和变量 定义结构体类型 一般形式: [例] 参见上页 定义结构体类型的变量 定义结构体变量 三种形式: 三、 结构体变量的引用 结构体类型不是存储数据的实体,即系统并不是给它分配内存,它仅是一种数据类型,与int, char 类似,用来定义一种数据类型的变量; 结构体类型变量才
您可能关注的文档
最近下载
- 常州大学《大学英语一》2024-----2025学年期末试卷(A卷).pdf VIP
- 艾米克变频器AMK3100中文说明书使用手册.pdf
- 必背古诗词75首(可打印) .pdf VIP
- 某知名汽车维修企业员工手册范本.docx VIP
- 2025年二建水利b证考试真题及答案.docx
- 安全驾驶教育培训课件.ppt VIP
- 汽车维修车间员工职责手册.docx VIP
- 黑龙江省哈尔滨市第三中学校2025-2026学年高二上学期9月月考物理试卷.docx VIP
- 初中语文名著导读--《骆驼祥子》知识点总结归纳.docx VIP
- 实施指南(2025)《DAT 22-2015 归档文件整理规则》.pptx VIP
原创力文档

文档评论(0)