C语言课程课件 第八章 地址和指针
20页1、第8章 地址和指针 8.1 变量的地址和指针 8.2 指针变量的定义和指针变量的基类型 8.3 给指针变量赋值 8.4 对指针变量的操作 8.5 函数之间地址值的传递考试的重点8.1 变量的地址和指针计算机的内存是以字节为单位的一片连续的存储空间,每一个字节都有一个 编号,这个编号就成为内存地址。 内存空间 地址1010 1011 1012 1013 1014 1015 1016 : : :1200 1201 1202 1203 1204 1205例如:short a,b;float x;a=3;b=5;x=3.5;: : :2002 2003 2004 2005abx353.5每个变量的地址是指该变量所占 存储单元的第一个字节的地址。在C语言中,我们可以定义整型变量、实型变量、字符变量。 他们都是用来存放数据的。 今天,我们来学习一下特殊的变量,这种变量只是用来存放 内存地址的。比如我们定义了一个指针变量pp占4个字节该变量中只能存放内存地址,比如把变量a的地址赋予指针 变量p,则指针变量p的值为1012。1012请问当访问变量a时,访问的是什么? 当访问指针变量p时,访问的是什么?
2、3 1012当访问变量时,为“直接存取(直接访问)”。 我们也可以通过指针变量间接的访问该地址中原来的值。此时 称为“间接存取(间接访问)”。8.2 指针变量的定义和指针变量的基类型定义指针变量的一般形式如下:类型名 *指针变量名; 或 类型名 *指针变量名1, *指针变量名2,;例如:int *pi;int *pj,*pa;1. pi,pj,pa都是变量,不过都是指针变量,定义时在普通变量名的左边加上星号就行了。说明:2. pi,pj,pa三个指针变量的类型为整型,说明三个变量中只能存放int类型变量的地址。这时我们称int是指针变量pi,pj,pa的基类型。如:double *pd;char *s1,*s2;pd的基类型为double类型,在指针变量pd中,只能存放double类型变量的地址。s1和s2的基类型为char类型,在指针变量s1和s2中,只能存放char类型变量的地址。8.3 给指针变量赋值8.3.1 给指针变量赋地址值例如:int k,*q,*p; /*k为整型变量,q和p都是指针变量。*/qpkk=1;/*给普通变量赋值*/整型变量k只被能赋予整型值,赋值时直接赋值
3、就可以 了,而指针变量只能被赋予地址值,如下是把整型变 量k的地址赋值给指针变量q。q=p=NULL; int *p; p=0; int *p; p=0; 注意此时,指针变量p中不是没有值,而是有一个“空”值。8.4 对指针变量的操作8.4.1 通过指针来引用一个存储单元#include main() int k,*q,*p;k=1;q=p=q;printf(“%dn%dn%dn“,k,q,p); 1 1245052 1245052输出时,变量k为1,而指针变量q和p则为变量k的地址。#include main() int k,*q,*p;k=1;q=p=q;printf(“%dn%dn%dn“,k,*q,*p); 1kp= j=*p;/*定义了三个变量*/ /*取变量i的地址赋给指针变量p*/ /*间接访问指针变量中的值10赋给变量j*/p10ij10j=i;间接访问运算符*是一个单目运算符,必须出现在运算对象的左边。其运算对象 可以是存放地址的指针变量,也可以是地址。j=*(j=*扩展知识:j=*p+1;10j11jint *p,k=0; p=pk*p=100;1000k=100
4、;*p=*p+1;k=k+1;101*p+=1; 或 +*p; 或 (*p)+;k+=1; 或 +k; 或 k+;若有以下定义和语句: int *p,*s,k=20; s= p= ps 20k 在定义指针变量时,*指针变量名用于存 放普通变量的地址;*指针变量名用于存 放指针变量的地址; int *p,*s,k=10; s=pa=pb=pmin=scanf(“%d%d”,pa,pb);printf(“a=%d b=%dn”,a,b);*pmin=*pa;if(*pa*pb) *pmin=*pb;printf(“min=%dn”,min); papbpminabmin/*输入的值依次放入pa、pb所指存储单元中*/scanf(“%d%d”,比如输入:41 324132a=41 b=32 min=a;41if(ab) min=b;32min=32 8.4 对指针变量的操作8.4.2 移动指针 p=pq=p+2; q+; q+; q-; p+;qqqp当有:int i,j,k;i=*p;j=*q;k=q-p;ijk22 44 2指针比较if(p int myadd(int *a,int *b
《C语言课程课件 第八章 地址和指针》由会员杨****分享,可在线阅读,更多相关《C语言课程课件 第八章 地址和指针》请在金锄头文库上搜索。
金属材料与热处理课程总复习课件(ppt)
金属切削原理课件 第8章 工件材料切削加工性
Java EE 课程ppt课件 第13章 Spring基础
Java EE 课程ppt课件 第6章 Struts 2的其他应用
Java EE 课程ppt课件 第2章 Struts 2基础
制作精良优美的高质量PPT模版 紫色主色调简洁风
制作精良优美的高质量PPT模版 数码风格论文答辩模版
制作精良优美的高质量PPT模版 蓝白主色调简洁风
制作精良优美的高质量PPT模版 答辩报告毕业设计 蓝色主色调
弹性力学与有限元教学课件第6.2章 ANSYS软件的应用
机械优化设计课件 绪论第1章 优化设计概述
金属切削原理课件 第9章 切削液
制作精良优美的高质量PPT模版 枣红色 毕业答辩论文模版
制作精良优美的高质量PPT模版 论文答辩 星空背景简洁风
制作精良优美的高质量PPT模版 毕业实习答辩 灰色风格
制作精良的论文答辩PPT模版 橙色主色调
艺术花色文艺风ppt模板
数值分析 第八章 常微分方程数值解法
郑州大学概率论与数理统计课程 第8章 假设检验part2
郑州大学概率论与数理统计课程 第4.4章 大数定律
2023-04-12 16页
2021-07-26 46页
2021-07-26 27页
2021-07-26 14页
2021-07-26 26页
2021-07-26 39页
2021-07-26 10页
2021-02-01 20页
2021-02-01 44页
2021-02-01 15页