- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言言程序序设计项目教教程
项目八共分为两个任务
项目八项目八 指针指针
————提高开发效率的妙招提高开发效率的妙招
任务一 学习指针的基础知识
任务二 深入学习指针
项目拓展 动态内存分配
任务一 学习指针的基础知识
任务说明任务说明
下面我们将学习指针的基本概念,指针变量的定义和应用等知识。
预备知识预备知识
一、指针的基本概念
二、指针变量的定义及应用
三、数组与指针
一、指针的基本概念
一个变量的地址称为该变量的指针个变量的地址称为该变量的指针,,用于存放变量地址用于存放变量地址 ((指针指针))
的变量称为指针变量。
整型变量整型变量mm的地址的地址 ((指针指针))是它存放在指针变量它存放在指针变量nn中中,即即nn
的值是m的地址,通过n可以找到m所在的内存单元,进而得到m的值,
则它们之间的关系如下图所示则它们之间的关系如下图所示。
二、指针变量的定义及应用
11.指针变量的定义指针变量的定义
指针变量需要先定义后使用,其一般形式为:
数据类型数据类型 *指针变量名指针变量名;;
数据类型是指针变量所指向的变量的数据类型,“*”表示其后的
变量为指针变量变量为指针变量,指针变量的命名遵循标识符命名规则指针变量的命名遵循标识符命名规则。
int *pointer1; //pointer1是指向整型数据的指针变量
charchar *pointer2;pointer2; //pointer2//pointer2是指向字符型数据的指针变量是指向字符型数据的指针变量
2.指针变量的初始化
定义指针变量后定义指针变量后,在使用它之前在使用它之前,必须先对其进行初始化必须先对其进行初始化,否则否则,
如果变量的值不确定,可能导致系统崩溃,其一般形式为:
数据类型数据类型 **指针变量名指针变量名=初始地址值初始地址值;
int a;
intint *p=a;*p=a; ////将变量将变量aa的地址赋给指针变量的地址赋给指针变量pp
3.指针变量的引用
指针变量的运算符有以下两个指针变量的运算符有以下两个:
① :取地址运算符,表示对其后的变量进行取地址运算,此运算
符通常用于将某一变量的地址赋给指针变量符通常用于将某一变量的地址赋给指针变量。
float a=1.5,*pa=a;
②② ** :指针运算符又称间接访问运算符指针运算符又称间接访问运算符,其后必须是其后必须是一个指针变量个指针变量,
表示该指针变量所指向的变量。
int x=3,y,*p;
p=x; //指针变量p指向x 的地址
yy=*p;p; //将将pp所指向变所指向变量x 的内容赋给内容赋给yy
4.指针运算
指针运算实际上就是指针运算实际上就是地址的运算地址的运算。。
((11))指针的算术运算指针的算术运算
包括:与整数的加减运算和自增、自减运算
pp++nn,,pp-nn,,pp++=nn,,pp-=nn,,pp++,++,pp--
(2)指针的关系运算
用于判断指针指向的位置之间的关系用于判断指针指向的位置之间的关系,,只有当两只有当两
个指针指向同一串连续的存储单元时才有意义。
如果两个指针变量的值相等如果两个指针变量的值相等,,表示他们指向同表示他们指向同一
个存储单元。如果数据在内存中按照一定顺序存储,
如右图所示如右图所示,则指向前边数据的指针变量小于指向后则指向前边数据的指针变量小于指向后
边数据的指针变量,即p1p2。
(3)指针的赋值运算
定义定义一个指针后个指针后,必须先给它赋值后才能引用必须先给它赋值后才能引用。
常见的指针的赋值运算有以下3种形式:
①① 将将一个变量的地址赋给指针变量个变量的地址赋给指针变量。例如例如:
int a,*p;
pp=a;a; ////将变量将变量aa的地址赋值给的地址赋值
文档评论(0)