- 19
- 0
- 约1.32万字
- 约 61页
- 2017-12-26 发布于河北
- 举报
C语言(第09章)
第九章 指针 指针是C语言中的一个重要的概念,也是比较难掌握的一个概念。正确而熟练地掌握了指针的概念和指针的使用就能设计出复杂的数据结构和高效的程序。 §9.1 指针概述 地址与指针 指针的类型与指针变量的声明 指针变量的引用 指向指针的指针 一、地址与指针 地址与取地址运算 int a=3,b=4; float c=4.5, d=8.6; char e=x, f=y; 一、地址与指针 指针与指针变量 指针:所谓指针就是地址,一个变量的指针就是它所在存储区的起始地址; 指针变量:存放地址的变量就是指针变量 一、地址与指针 直接访问与间接访问 二、指针的类型与指针变量的声明 指针的类型: 就是它所指向的实体的类型。如:指向int类型的指针,指向float类型的指针等。 二、指针的类型与指针变量的声明 指针的声明: 例如:int * p, a=3; float * pf, f; p = a; pf = f; 三、指针变量的引用 两个有关指针的运算符: &运算符:为取地址运算符,&x的值为x的地址。 *运算符:称指针运算符,或指向运算符,也称间接运算符,*p代表p所指向的变量。 注意:*p 在定义指针变量和引用时含义不同。 在定义时,“int *p”中的“*”不是运算符,它只是表示其后面的变量是一个指针类型的变量。 在程序的执行语句中引用的“*p”,其中的“*”是一个指针运算符,*p表示p指向的变量”。 三、指针变量的引用 在声明了一个指针变量之后可以对或用该指针变量进行各种操作: 给一个指针变量赋予一个地址值 p=a; 输出一个指针变量的值 printf(“%x”,p); 访问指针变量所指向的变量 *p = 5; printf(“%d”, *p); 三、指针变量的引用 例1: 改变指针变量的指向 main() /* 使2个指针指向同一变量 */ { int *p1,*p2,i1,i2; scanf(%d %d,i1,i2); p1=i1; p2=i2; printf(%d, %d\n,*p1,*p2); p2=p1; /* 改变指向 */ printf(%d, %d\n,*p1,*p2); } 例2: 使2个指针变量交换指向 main( ) { int *p1,*p2,*p; int i1=10,i2=20; p1=i1; p2=i2; printf(%d, %d\n,*p1,*p2); p=p1; p1=p2; p2=p; /*交换指向*/ printf(%d, %d\n,*p1,*p2); } 例3:交换2个指针变量所指变量的值 main() { int *p1,*p2,i1,i2,i; i1=10; i2=20; p1=i1; p2=i2; i=*p1; *p1=*p2; *p2=i; printf(i1=%d, i2=%d\n,i1,i2); } /*运行结果: i1=20,i2=10 */ 四、指向指针的指针 指针变量保存的是一个地址,它可以指向一个任一类型的数据(int, float, char等),当然也可以指向一个指针型的数据。这种“指向指针型数据的指针变量”,简称为指向指针的指针。 四、指向指针的指针 定义指向指针的指针的方法如下: 如:float **p1, *p, i ; 使指针变量指向另一个指针的方法: int **p1, *p, i=3; p=i; p1=p; 四、指向指针的指针 多重指针: 多重指针举例: main( ) { int i=3, *p4, **p3, ***p2, ****p1; p4=i; p3=p4; p2=p3; p1=p2; printf(“%d %d %d %d %d %d \n”, ****p1,***p2,**p3,*p4, i); } §9.2 指针与数组 一维数组的指针表示方法 二维数组的指针表示方法 指向数组的指针变量 指针数组 一、一维数组的指针表示方法 一个数组名代表它的起始地址,引用数组元素可以采用三种方法: 下标法:a[i] 地址法:*(a+i) 指针法: p=a[i]; 或 p=a+i; 然后:*p p=a; 然后:*p++ 例4 分别用三种方法访问数组元素 void main( ) { int a[5]={1,3,5,7,9}, i, *p; for (i=0;i5;i++) printf(%d,a[i]); /* 下标法 */ printf(\n); for (i=0;i5;i++) printf(%d,*(a+i)); /
您可能关注的文档
- Chapter 2 part 2(2[一].3-2.5)__ 53P.ppt
- Chapter 5 Look it up课件.ppt
- Chapter 5,因子设计简介.ppt
- Chapter 6 – Audit Responsibilities and Objectives.ppt
- Chapter 8 地理信息系统产品的输出设计.ppt
- Chapter01-交互技术蕴含的商业价值.pptx
- Chapter04 - WM应用程序开发技术基础_v1.0.0.ppt
- chapter1 C语言概述.ppt
- CHAPTER03-04(汇编).ppt
- Chapter1_6 电压源和电流源元件.ppt
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 传媒法规与伦理教学课件(共22章)新闻伦理研究综述.pdf VIP
- 汽车行驶记录仪产品使用说明书.PDF VIP
- 2026年成都市美容医疗诊所医美项目安全规范运营可行性研究报告.docx VIP
- ocean培训petrel re快速入门工作流程.pdf VIP
- (四年级奥数班讲义.doc VIP
- 单病种病案数据填报指导手册.doc
- 企业 IPO 筹备方案(最新版,附时间表 + 材料).docx VIP
- 深圳初三数学联考模拟试题.docx VIP
- 高考历史二轮总复习精品课件 第四板块 世界现代史 第十七讲 现代科技的发展与当今世界发展的趋势.ppt VIP
- 2024年菏泽职业学院单招数学考试模拟试题及答案解析.docx VIP
原创力文档

文档评论(0)