- 8
- 0
- 约 10页
- 2017-01-06 发布于贵州
- 举报
C语言指针讲义C语言指针讲义
指针程序设计(一) 内容 说明 主要
内容 1.指针与指针变量的概念
2.指针变量的定义、引用及运算
3.一维数组与指针 重点变量指针和一维数组指针
主要针对一维数组
重点讲解
通过此图讲解变量与地址的关系
通过例子说明指针变量的定义和初始化应注意的问题
重点 指针的概念
变量指针和一维数组指针
3.指向变量、一维数组的指针变量 难点 1.变量指针和一维数组指针的引用
2.指向变量、一维数组的指针变量的引用 问题
提出 定义变量系统会为变量开辟一定单元的存储空间,如何利用存储空间解决变量的运算问题呢?
一、间接访问与直接访问
举例:打开A抽屉方法
直接访问:将A钥匙带在身上,需要时直接打开
间接访问:将A钥匙放在B抽屉,需要时,打开B抽屉取出A钥匙,打开A抽屉。
二、指针
1.什么是指针
定义:指针就是地址。
2.内存单元和地址
内存单元地址:计算机内部存储器由很多内存单元组成,每个内存单元都有自己独有的地址,称内存单元地址。
3.变量与地址
当一个变量只占用一个内存单元时,内存单元的地址就是变量的地址;当变量占用连续的若干个内存单元时,最前面一个单元的地址就是该变量的地址。
例:int i=3;float f;
变量i的地址:2001,变量f的地址:2008
由于地址起到寻找操作对象的作用,像一个指向对象的指针,所以常把地址称为“指针”。
4.数组与地址
数组元素占用连续的内存单元。数组类型不同,每个数组元素占用的内存单元数也不同。数组占用的总单元数等于数组长度×每个数组元素占用的内存单元数。
数组元素a[0]的地址称为数组的首地址。 数组元素a[i]的地址=数组首地址+i×数组元素的数据类型所占用的内存单元数
例:int a[3]={1,2,3};
三、指针变量
1.什么是指针变量
定义:存放地址的变量称为“指针变量”。
2.指针变量的定义和初始化
指针变量在使用前必须定义,定义的同时可以赋初值。
【格式】存储类型 数据类型 *指针变量名1[=初值1],…;
【功能】定义指向指定“数据类型”或数组的若干个指针变量,同时给这些变量赋初值。
例:int a;int *p=a;float f1,f[10],*p1=f1,*p2=f;
3.指针变量的引用方式
(1)给指针变量赋值
【格式】指针变量=地址表达式
例: int i,*p;p=i;
(2)直接引用指针变量名
例:int i,j,*p=i,*q;q=p;scanf(“%d,%d”,q,j);
(3)通过指针变量来引用它所指向的变量
【格式】*指针变量名
例如:int i=1,j=2,k,*p=i;k=*p+j;
四、取地址运算符与指针运算符
取地址运算符():取运算对象的地址。如a
指针运算符(*):取指针变量所指向的变量或数组元素的值。
例如:int *p,a;p=a;则*p= =a为真。
【例】利用指针,求两个整数的和。
main( )
{ int i, j ,sum ;
int *p, *q; /*定义指针变量*/
p=i; q=j; /*建立关联*/
scanf(″%d, %d″, p, q);
sum=*p+*q; /*使用指针变量*/
printf (″%d, %d\n″, *p, *q);
printf(″和= %d \n″, sum);
}
五、用指针变量引用一维数组元素
如何将指针变量指向数组的首地址?
(1)初始化:数据类型 *指针变量=数组名
(2)程序中赋值:指针变量=数组名
(3)若指针变量指向某数组元素:*指针变量=数组名[下标]
1.用指向数组元素的指针变量处理数组元素
(1)当指针变量指向数组的首地址,引用数组元素的方法
引用“数组元素[0]”: *(指针变量+0)或*指针变量
引用“数组元素[i]”: *(指针变量+i)
(2)当指针变量指向下标为i的数组元素,引用数组元素的方法
引用“数组元素[i]”: *(指针变量+0)或*指针变量
引用“数组元素[i-k]”: *(指针变量-k)
引用“数组元素[i+k]”: *(指针变量+k)
(3)当指针变量指向数组首地址,对下标i的数组元素引用方法
① *(指针变量+i)②*(数组名+i)③ 指针变量[i]④数组名[i]
2.指向数组元素的指针变量的运算
(1)指针变量算术运算
指针变量+整数 指针变量-整数 ++
您可能关注的文档
- CVTE笔试题_答案.doc
- C_C++软件开发规范.doc
- C上机练习题全.doc
- C一期土方招标文件.doc
- C代码优化性能.doc
- C代码优化C代码优化.doc
- CVS搭建及应用.doc
- C_实验指导书.doc
- C习题及答案.doc
- CT基础知识介绍.doc
- 探源与思辨:王若虚《论语辩惑》的多维审视.docx
- 铜锰氧化物的制备工艺与选择催化氧化氨性能的深度探究.docx
- 高新技术项目融资模式的多维度比较与创新发展研究.docx
- 磁共振测量技术赋能生物组织电特性成像的深度探索.docx
- 基于Hadoop的云存储系统:架构、实现与性能优化.docx
- 探寻自适应主动队列管理算法:原理、应用与前沿演进.docx
- 基于UML活动图的测试用例自动生成技术:原理、方法与实践.docx
- Cu-Sn微焊点化合物演变与原位力学性能的深度剖析.docx
- 东北亚经济合作新态势下东北振兴的战略协同与发展路径研究.docx
- 基于卷积神经网络的中国交通标志检测:技术、应用与优化研究.docx
原创力文档

文档评论(0)