




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第7章 指针,7.1 指针的概念 7.2 指针变量 7.3 函数间传递地址值,7.1 概念,1.数据在内存中的存储方式: 按数据类型给在内存为其分配一定数量的存储单元(字节)。,2.内存单元的地址: 内存单元的编号,与变量名对应。,3.内存单元的内容: 即变量的值。,例如有定义: int a; char c; float x; 变量a,c,x的内存分配情况:,a,x,c,4.变量的“直接访问”方式: 按变量的地址(即变量名)存取变量值的方式。(见下图),间接访问方式示意图:,将变量的地址放在另一个内存单元中,先到另一个内存单元中取得变量的地址,再由变量的地址找到变量并进行数据存取(见下图)。,
2、5.变量的“间接访问”方式,内存用户数据区示意图:,变量pointer为指针变量,存放的是变量i的内存地址,我们说pointer指向i。,6.指针的概念: 一个变量的地址称为该变量的指针。,8.2 指针与变量,一. 指针变量的定义和指针变量的基类型,1. 定义方式: 类型标识符 *指针变量名;,float *p1; (定义了p1为指向实型变量的指针变量) char *p2; (定义了p2为指向字符型变量的指针变量),标识符前面的“*”,表示该变量为指针变量。但指针变量名是*后面的名字(不包括“*”)。 该指针所指向变量的类型成为指针变量的基类型。,3.说明,2. 指针变量的三要素: 指针变量的
3、基类型: 和其所指变量的类型一致; 指针变量的值:另一个变量在内存的地址; 指针变量的名字:起法同普通变量。,指针变量名=某一地址;,二.指针变量的赋值,方式1: 指针变量名=,方式2: 指针变量名=另一已经赋值的指针变量;,方式3: 通过调用库函数malloc和calloc在内存中开辟动态存储单元;,方式4: 还可以给指针变量赋NULL值。,例如: int i,*p,*q,*r,*t; p=,示意图,三.指针的运算,1.移动指针 对指针变量加上或减去一个整数、或通过赋值运算,使指针指向相邻的存储单元 在p+中,1不代表一个字节,而是一个存储单元,具体字节数由指针的基类型决定 2.指针的比较和
4、相减 相减得一整数,代表两指针所指存储单元之间相距的单元数,不是字节数。,3.两个运算符 *: 求其后内存地址中的内容 int *p1,*p2; a=100;b=10; p1= ,程序运行结果: 100,10 100,10,再例:由下列图(a)形式,,图(a),图(b),执行语句: p2= a=5;b=9; p1=,if (ab) p=p1;,p1=p2; ,p2=p; ,printf(a=%d,b=%dn,a,b); printf(max=%d,min=%dn,*p1,*p2);,-指向指针变量的指针. 定义形式: 类型 *变量名; 例如: int i,*p,*q; i=30; p=,四.指
5、针的指针,7.3 函数之间传递地址值,看下面的程序,int sum(int a, int b) return a+b; ,void add1(int a, int b, int c) c=a+b; ,void add2(int a, int b, int *c) *c=a+b; ,void main() int x=3,y=4,z=5; z=sum(x,y); printf(“sum:z=%dn”,z);x=3,y=4,z=5; add1(x,y,z); printf(“add1:z=%dn”,z); x=3,y=4,z=5; add2(x,y, ,考虑函数调用时, 三个函数的参数传递情况 内存中变量的值的变化情况,void swap1(int a, int b) int t; t=a; a=b; b=t; ,void swap2(int *a, int *b) int t; t=*a; *a=*b; *b=t; ,void main() int x=3,y=4; swap1(x,y); printf(“1:x=%d,y=%d”,x,y); swap2( ,再看下面的程序(同上例),函数传递参数的形式,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能厨电创投项目计划书
- 肉牛养殖技术课件视频大全
- 2025至2030布艺床行业风险投资态势及投融资策略指引报告
- 东博高职考数学试卷
- 二年级上册青岛数学试卷
- 家用美容仪器质量检测方法考核试卷
- 德阳模拟高三数学试卷
- 二升三的数学试卷
- 高考文科模拟卷数学试卷
- 二十年前初中数学试卷
- 2024年部编版九年级语文上册电子课本(高清版)
- 2024年医学高级职称-结核病学(医学高级)考试近5年真题集锦(频考类试题)带答案
- 新教科版二年级科学下册全册教案
- 多模态导航融合
- 湖南省长沙市平高教育集团六校2023-2024学年高二下学期期末联考+化学试卷(含答案)
- 【8物(沪科版)】合肥市第四十五中学2023-2024学年八年级下学期期末物理试题
- 区域代理商合同模板
- 外科学课件换药及拆线
- DZ/T 0462.8-2023 矿产资源“三率”指标要求 第8部分:硫铁矿、磷、硼、天然碱、钠硝石(正式版)
- 《车位租赁协议》标准版可打印
- JT-T 1495-2024 公路水运危险性较大工程专项施工方案编制审查规程
评论
0/150
提交评论