c语言猜宝游戏代码,u掌握指针与指针变量的概念.PDF

第6章指针

学习目标

u 掌握指针与指针变量的概念

u 了解指针与数组的关系,掌握如何使用指针引用数组中的数据

u 了解指针与函数的关系,掌握如何通过指针调用函数

u 掌握指针与二级指针的关系

u 掌握内存的申请方法与操作方式

指针是 C 语言中一种特殊的变量类型,与其它类型的变量不同,指针变量存储的不是

变量,而是变量的地址。正确地使用指针,可以使程序更为简洁紧凑,高效灵活。指针是 C

语言的精髓,同时也是 C 语言中最难掌握的一部分。

【案例1】爸爸在哪儿

案例描述

晚餐时间,妈妈做好了美味的晚餐,走上楼去叫宝宝和爸爸吃饭。到了卧室,发现只有

宝宝一个人,妈妈想:“爸爸在哪儿?”。妈妈先让宝宝下楼去餐桌旁,然后走到了书房,在

书房找到了正在看书的爸爸。

如果将宝宝和爸爸比作内存中的两个变量,请编程求出他们在内存中的地址。

案例分析

在计算机中,每一个变量都是有地址的,根据地址就能找到某个变量。如在本案例中,

宝宝在卧室,则宝宝的地址就是卧室;爸爸在书房,则爸爸的地址就是书房。

根据案例述,妈妈首先在卧室中找到了宝宝,之后在书房中找到了爸爸。寻找宝宝和

寻找爸爸的步骤分别如图 6-1 所示。

卧室 书房

宝宝 爸爸

图6-1 步骤示意图

在这个寻找的过程中涉及到了指针与指针变量的相关知识,下面对这些知识逐一讲解。

必备知识

1. 指针与指针变量

(1)指针的概念

如果在程序中定义一个 int 型的变量 a :

int a=10;

那么编译器会根据变量 a 的类型 int ,为其分配 4 个字节地址连续的存储空间。若这块

连续空间的首地址为 0x0037FBCC ,那么这个变量占据 0x0037FBCC~0x0037FBD0 这四个字

节的空间,0x0037FBCC 就是这个变量的地址。因为通过变量的地址可以找到该变量所在的

存储空间,所以说该变量的地址指向该变量所在的存储空间,该地址是指向该变量的指针。

内存单元和地址的关系示例如图6-2 所示。

0x0037FBCC

10 a

0x0037FBD0

图6-2 内存单元和地址

若将存储空间视为酒店,那么存储单元好比酒店中的房间,地址好比酒店中房间的编号,

而存储空间中存储的数据就相当于房间中的旅客。

(2 )指针变量的定义

指针指示某个变量所在的存储空间,相应地,指针变量存储这个指针。定义指针变量的

语法格式如下:

变量类型* 变量名

上述语法格式中,变量类型指定定义的指针指向数据的类型,变量名前的符号“*”表

示该变量是一个指针变量。举例说明:

int* p; //定义一个 int*型的指针变量 p

其中“*”表明 p 是一个指针变量,int 表明该指针变量指向一个 int 型数据所在的地址。

(3 )指针变量初始化

指针变量的赋值有两种方法,一种是接收变量的地址为其赋值,如下所示:

int a=10; //定义一个 int 型的变量 a

int* p; //定义一个 int*型的指针变量 p

p=&a; //使 int*型的指针变量 p 指向 int 型变量 a 所在的存储空间

另外一种是与其它指针变量指向同一块存储空间:

int* q;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值