- 1、本文档共61页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章指 针 本章目录 指针是C语言的一种数据类型,在C语言中处于重要的地位。正确、灵活地应用指针可以有效地表示复杂的数据结构、动态地分配内存、方便地使用字符串、高效地使用数组。熟练地应用指针可以使C程序简洁、紧凑、应用效果好。 7.1 指针的概念 指针的概念包括指针和指针变量的关系、指针和函数、指针和数组的使用等。 7.1.1 指针和指针变量的关系 一个变量的地址称为该变量的指针。 1.地址指内存中存储单元的编号: 1)计算机硬件系统的内存储器中,拥有大量的存储单元(容量为1字节)。为了方便管理,必须为每一个存储单元编号,这个编号就是存储单元的“地址”。每个存储单元都有一个唯一的地址。 2)在地址所标识的存储单元中存放数据。 注意:内存单元的地址与内存单元中的数据是两个完全不同的概念。内存单元的编号(地址),与变量名对应。内存单元的内容:即变量的值。 7.1 指针的概念 到目前我们学过的基本数据类型int型、float型、double型、char型等,内存分配的存储单元分别是2个字节、4个字节、8个字节、1个字节等。前面我们已经介绍了变量的概念,每个变量都有自己的存储地址。定义变量的同时,把存储单元的起始地址作为变量的地址(指针)。 指针变量指专门存放变量地址的变量。为了更好的理解指针和指针变量,下面举例说明: int a; 编译系统会为它分配2个字节存储单元即1000H和1001H,1000H就是变量a的地址。如果有一个变量存放变量a的地址,那这个变量就是指针变量pa。如图7-1 7.1 指针的概念 我们可以直接给变量a赋初值2,即通过变量a的地址访问a,这种方式称“直接访问”。当然还可以通过指针变量pa访问变量a,这种访问方式称“间接访问”。 7.1 指针的概念 7.1.2指针变量定义 定义指针变量的一般形式为 基类型 *指针变量名 指针变量与普通变量类似,在程序中若要使用指针变量,必须先进行定义后使用。 例如: int *p1,i; (定义p1为指向整型变量的指针变量) char *p2,c; (定义p2为指向字符型变量的指针变 量) float *p3,f; (定义p3为指向实型变量的指针变量) int、char、float分别称为指针变量p1、p2、p3的“基类型”, 7.1 指针的概念 “基类型”只是指指针变量所指变量的类型,不是指针变量的类型。指针变量只是存放指向变量的地址,由于内存地址都是整型常量,所以指针变量在内存中只占2个字节。 由上可知,定义指针变量的同时也可以定义其他类型的变量,它们在语法上的差别仅在于前者在变量名多了一个“*”号。要弄清楚指针变量的含义和作用,还必须弄清楚以下几个概念。 1.指针变量名:指针变量名不包括“*”号,因为“*”号不能用于标识符。因此,在*p1中,“*”和p1不是一个整体,不要把*p2、*p3等看作指针变量名,指针变量名是p2、p3等。 2.指针变量的值:其初值不定,当初始化或赋值后,其值表示另一个变量的地址。 7.1 指针的概念 7.1.3和指针有关运算符 指针运算包括两个运算符 1.取地址运算符() 单目运算符()用来求出运算对象的地址,利用它可以把一个变量的地址赋给指针变量。可以使用不同的方法给一个指针变量赋值。 例如有定义和赋值: int a=5, *pa; pa=a; 将变量a的地址赋给指针变量pa,也就是使pa指向了变量a。 7.1 指针的概念 2. 指针运算符(*) 也叫间接访问运算符,单目运算符,当它和指针变量参与运算时,表示指针变量所指的内容,即实现“取内容”操作。 int a=5,b, *pa; pa=a; 若b=*pa-1;则b=4; 注意:*在不同的地方作用有时是不一样的。若出现在变量定义的部分,*说明pa是指针变量;出现在其他操作部分中*pa表示pa所指向的变量a。 3. 取地址运算符()和指针运算符(*)互为逆运算。 7.1 指针的概念 7.1.4、指针变量赋值(初始化) 可以使用不同的方法给一个指针变量赋值。
文档评论(0)