- 1、本文档共36页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 指针与应用
•指针的基本概念
•指针变量和指针运算符
•指针和函数参数
•指针和数组
•指针和函数
10.1 指针的基本概念
1.内存地址
计算机硬件系统的内存储器中,拥有大量的
存储单元。一般把存储器中的一个字节称为一
个内存单元。为了方便管理,必须为每一个存
储单元编号,这个编号就是存储单元的地址。
2.变量地址
在程序中定义了一个变量,在编译时就会给
这个变量分配内存单元,根据变量的类型,分
配一定长度的空间。
10.1 指针的基本概念
如果执行程序:
main()
{ int a=10, b=20, c;
c=a+b;
printf(Sum=%d\n, c);
}
变量在内存中的地址和值如图9-1所示
10.1 指针的基本概念
3.指针和指针变量
(1)指针
指针即地址。变量在内存单元的首地址称为该变
量的“指针” 。
(2)指针变量
在C语言中,允许用一个变量来存放指针,这种
变量称为指针变量。
当一个指针变量中存放其它变量的地址
时,可以通过该指针变量访问变量。
10.2 指针变量和指针运算符
指针变量是指存放地址的变量,指针变量
可以进行某些运算,但其运算的种类是有限
的。它只能进行赋值运算、部分算术运算及关
系运算。
10.2.1指针变量的定义
在C语言中,规定所有变量在使用前必须先
定义后使用,指针变量也不例外,在引用指针
变量之前必须先定义。
指针变量的定义形式如下:
类型说明符 *指针变量名;
10.2.2 指针变量的引用和初始化
1.指针变量基本运算符
(1) 取地址运算符
C语言中提供了地址运算符来表示变量的
地址。
例如:
int *p, m=5,s[5];
p=m;
p=s[2];
例10.1指针变量的使用
main()
{ int a=100, b,*p;
p=a;
printf(%d, %d\n,a,*p);
*p=1000;
printf(%d, %d\n,a,*p);
}
程序运行结果:
100, 100
1000,1000
10.2.2 指针变量的引用和初始化
2.指针变量的初始化
在定义指针变量的同时给指针变量赋初值,
叫做指针变量的初始化。一般形式为:
类型说明符 *指针变量名=初始地址值;
例如:
int a;
int *p=a;
10.2.3 指针的运算
在C语言中,指针的运算主要有如下3种:
赋值运算
算术运算
关系运算
10.2.3 指针的运算
1.指针的赋值运算
指针变量的赋值运算只能在同一数据类型之间进
行,有以下几种形式。
int *p1,*p2,a,s[5];
int *p1=a;
p2=a;
p1=p2;
p1=s;
p1=s[3];
p1=NULL;
10.2.3 指针的运算
2.指针的算术运算
指针的算术运算是按地址计算规则进行
的,所以指针的算术运算应考虑到指针所指向
的数据类型。
(1) 指针与整数的加、减运算
对于指向数组的指针变量,可以加上或减
去一个整数n。例如:假设p是指向数组a的指
针变量,则p+n、p-n、p++、++p、p--、--p运
算都是合法的。
10.2.3 指针的运算
假设指针变量p当前指向数组元素a[0],则
p+n则指向数组元素a[n]。例如:
int a[5],*p;
p=a;
p++;
p=a;
p=p+2;
/* p指向a[2],即p 的值为a[2] */
10.2.3 指针的运算
3.指针的关系运算
指针之间的关系运算可确定它们所指向的数
据对象存储位置的前后关系,所进行的比较是
两个指针变量所指向的地址的比较。
您可能关注的文档
- Access2007数据库应用第10章.pdf
- Access2007数据库应用第11章.pdf
- Access2007数据库应用第12章.pdf
- Access2007数据库应用第13章.pdf
- Access数据库应用基础与实训教程第1章数据库基础知识.pdf
- Access数据库应用基础与实训教程第2章Access2003基础知识.pdf
- Access数据库应用基础与实训教程第4章Access数据表的操作.pdf
- Access数据库应用基础与实训教程第5章Access查询及其应用.pdf
- Access数据库应用基础与实训教程第6章窗体的设计.pdf
- Access数据库应用基础与实训教程第7章报表.pdf
- 2024-2025学年度北师大版9年级数学上册期中试题含答案详解(达标题).docx
- 2022年丽水职业技术学院招聘笔试真题及参考答案详解.docx
- 2022平凉职业技术学院招聘笔试真题带答案详解.docx
- 2022年七台河职业学院招聘笔试真题及参考答案详解一套.docx
- 2022宁波城市职业技术学院招聘笔试真题及参考答案详解1套.docx
- 2022年四川工业科技学院招聘笔试真题附答案详解.docx
- 2022年云南文化艺术职业学院招聘笔试真题含答案详解.docx
- 2022年中国石油化工股份有限公司巴陵校园招聘真题附答案详解.docx
- 2022年丽水学院招聘笔试真题带答案详解.docx
- 2022年中山火炬职业技术学院招聘笔试真题附答案详解.docx
文档评论(0)