c语言程序设计教程刘平答案,《C语言程序设计》指针基本概念教学的探讨.pdf

据存储的基本概念.是C语言以及其他各种程序设计语言中的一个重要概念。在计算机硬

件层面,程序运行中的数据存储通过内存、内存单元、内存地址等一系列机制实现,这些

机制在程序语言层的反映就是程序变量的概念IlJ。

一个程序变量可以看作一个容器,程序运行中可以将有关的数据存入变量中。程序里

的每个变量都有一个名字(变量名).在程序中可以通过变量名使用相应的变量,进而使用

存储在变量里的数据(变量值)【IJ。

如果在程序中定义了一个变量,在编译时就会给这个变量分配一定长度的内存空间,

该内存空间开始字节的地址,就是变量的地址。

3.2直接访问与间接访问

每一个内存单元都有一个地址,用来标识该内存单元,通过地址对所标识的内存单元

存放数据。给变量分配内存空间时,实际上就是建立变量名和地址间的对应关系。变量值

是存放在该地址的内存单元的数据.在内存中对变量值的存取是通过地址进行的。这种按

变量地址存取变量值的方式称为“直接访问方式”。指针变量是存放另一变量地址的变量。

一般来说,我们要访问某一变量,如果不是直接通过变量名(地址)来进行,而是通过存

放该变量地址的指针变量间接进行,则称为“间接访问”方式。

4指针和指针变量

指针和指针变量是两个不同的概念。指针指的是变量的指针,即变量的地址。可以通

俗地讲,指针就是地址,地址就是指针。指针变量说明该变量的值是指针(地址)。存放

的是另外一个变量的地址,通过这个地址,可以找到该地址标识的内存单元,进而可以对

该内存单元里存储的数据进行访问。因此,指针变量也称为指向变量的指针变量。

在不同版本的C语言语法描述中,对于什么是指针,有不同的说法。第一种说法,指

第二种说法,一个变量的地址称为该变量的“指针”,如果有一个变量专门用来存放另外

一个变量的地址(即指针),则它称为“指针变量”,指针是一个地址,而指针变量是存

放地址的变量【4l。第三种说法,指针是一种低级数据类型,它存放的是某一数据的地址,

该地址中存放的可能是任何一种数据类型【5l。总结上面的三种说法,第一种说法,认为指

针是变量,忽略了指针常量,如数组名、函数名等,是不全面的。第二种说法,认为指针

是地址,只强调了指针的值,例如,地址2000是变量i的指针,把指针的值与指针的概念

混为一谈。第三种说法,认为指针是一种数据类型。

5指针变量的定义与初始化

5.1指针变量的定义

指针变量的定义采用如下形式:类型说明符·指针变量名;

538

定义一个指针变量。其所指向的变量的类型由类型说明符确定.也就是说,一个指针

变量只能指向同一类型的变量.

例如:

inta=3;

int·p; /.定义P为指向整型数据的指针变量幸/

float

b-5.0;

在程序中,执行P;&a正确,但P=&b则是错误的.因为指针变量P的值是整型变

量的地址。

5.2指针变量的初始化

指针变量的初始化有两种方式。第一种方式是在定义指针变量的同时对该指针变量进

行初始化。例如:

int

a。3; /木定义int型变量a*/

int宰P=&a;/枣定义int型指针变量P。并且将变量a的地址赋值给p*/

第二种方式是先定义指针变量,然后在引用该指针变量前对其进行初始化。例如:

nt I3 /拿定义int型变量a幸/

.工.1 n

●, /幸定义int型指针变量p*/

D. t; a●& p” /事将int型变量a的地址赋值给p*/

5.3指针操作符&和宰

5.3.1取地址运算符&

指针变量的值是地址.这个值可以是常量地址,也可以是某个变量的地址。在程序中,

如何给指针变量赋值呢?可以通过&实现。&是一元操作符,返回其操作数的内存地址,

即用于取得某个变量的地址。例如:

int率p,i; /宰定义指针变量P和整型变量i*/

P一&i; /宰将变量i的地址赋值给指针变量p*/

对于上面的语句,可以这样理解:假设变量i用内存单元2000保存其值,同时假定i

的值为100,执行上面的语句后,P的值为2000,地址2000处存放的数据为100·

5。3.2取内存单元数据运算符奉

·为一元

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值