- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言程序设计教程第六章指针
c语言程序设计教程第六章指针
本文由瓦斯202贡献
ppt文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。
第 6章 指 针
●指针基础 ●指针与数组 ●指针与函数
6.1 指针基础
6.1.1 指针就是地址 1. 程序实体的内存地址 一个程序一经编译,在其执行过程中, 一个程序一经编译,在其执行过程中, 就会为变量、数组以及函数分配存储空间。 就会为变量、数组以及函数分配存储空间。 这些变量、数组、函数都称为程序实体, 这些变量、数组、函数都称为程序实体, 也具有某一种数据类型。 也具有某一种数据类型。这些被分配了内 存空间的程序实体,都具有自己的内存地 存空间的程序实体, 址。
#include int main(void) { int i1,i2; float f1,f2; double d1,d2; printf(数据大小:int,%d;float,%d;double,%d\n, sizeof(i1),sizeof(f1),sizeof(d1)); /* 输出类型宽度 */ printf(%ld,%ld\n,i1,i2);/* 输出变量地址 */ printf(%ld,%ld\n,f1,f2); printf(%ld,%ld\n,d1,d2); return 0; }
解释: (1)变量存储空间的分类顺序:先声明的后分 配;撤销的顺序与之相反:先建立的后撤销。这种 机制就称为栈机制,好像往一个只能允许进出一个 盘子的桶里放盘子,先放进的后拿出。在C语言程序 中,局部变量就是被分配在栈区的,并且是以高端 为栈底建立的。所以后建的变量的地址小。 (2)每个变量只有一个地址,但占用的空间不 同。空间的大小因类型而异。同时,数据的存储方 式也不同,如实型数据采用浮点存储,而整型数采 用定点存储。
2. 指针的概念 从根本上说,目标程序是按照地址访 问这些程序实体的。C语言不仅提供了用变 量名访问内存数据的能力,还提供了直接 使用内存地址访问内存数据的能力。这个 内存地址就称为指针。它好像一个指路标 指向要访问的内存数据。
6.1.2 指针变量及其定义
1. 指针变量的概念 变量可以用来存放数值(如整数、实数等),也 可以用来存放地址(另一个变量的地址),这种专 门用于存储指针(地址)的变量就称为指针变量。 2. 指针变量的定义 在定义指针变量时,需要用指针声明符*表示 此变量不是一般的变量,而是用来存放其他变量 地址的指针变量。由于每一个变量都是属于一个 特定类型的,因此在定义指针变量时,需要声明 该变量的类型,以便能通过指针能正确访问特定 类型的数据。 定义一个指针的语法格式为: 基类型标识符 * 指针变量名;
6.1.2 指针变量及其定义
int * pi1,*pi2; double *pd1,*pd2; 说明: (1)“基类型”,就是指针要指向的数据的类型。 (2)定义指针变量时,在指针变量名前加符号 “*”。“*”称为指针声明符,用于说明它后面 的名字是一个指针变量名。例如语句: int i1,i2,*pi1,*pi2; 定义了两个数据变量i1和i2,还定义了两个指 向int类型的指针pi1和pi2。
3. 指针变量的初始化和赋值
和其他变量一样,指针变量也可以初始化。可以用变 量的地址对指针变量进行初始化,但必须注意:该变量的 类型必须和指针变量的基类型相同。也可以用一个指针变 量的值给另一个指针变量赋值,但它们应该具有相同的基 类型。例如: int i1,i2,i3; int *pi1=i1,*pi2=i2; pi1=i3; pi2=pi1; 注意,不要将一个变量的值赋给指向它的指针变量。 例如 pi1=i1;或pi2=i1; 都是错误的。应该是将变量的地址赋给指向它的指针 变量。如: pi1=i1;或pi2=i1;
6.1.3 指针变量的引用
1. 引用指针变量 当一个指针变量被初始化或被赋值后,它就 指向一个特定的变量。这时,就可以使用指针访 问它所指向的内存空间。在C语言中使用指针访 问它所指向的内存空间的方法是在指针变量名前 加一个“*”号。例如 int i,*pi; pi = i; *pi=5; 此处的“*”是“指针运算符”。又称为“间 接访问运算符”,它作用于指针变量。*pi表示指 针变量pi所指向的存储空间,即变量i。*pi相当于 变量i。
2. 使用指针变量需要注意的问题 (1)使用指针,首先应当区分指针变量与它所指向 的存储单元之间的不同。 #include int main(void) { int i1=10,i2=20,*p,
文档评论(0)