下载后可任意编辑C 语言—指针计算方式 1c 语言是目前世界上使用最为广泛的计算机语言之一,目前已经成为各大高校主要的计算机教学语言。指针算法是 c 语言中的一个非常重要的概念,由于指针算法概念比较复杂,运用非常灵活,比较难掌握,尤其是对初次涉及计算机语言的学生来说更是如此。本文重点分析 c 语言指针算法单元教学中的几个关键点,并探讨 c 语言教学中应该注意的一些问题。指针算法知识单元构成 1.1 指针算法定义在计算机内存中,每一个存储单元(通常为 1 字节)都有一个固定的编号,就像酒店中的房间号码一样,这个编号就称为地址,相当于房间号。在地址所标识的内存单元中存放数据,这就相当于酒店中各个房间里居住的旅客一样。 1.2 引用指针算法变量&和*是 c 语言有关指针算法的两个重要运算符,分别是取地址运算符和指针算法运算符。例如:&x 为变量 x 的地址,*p 为指针算法变量 p 所指向的存储单元。应该注意的是在定义时*只起说明作用,不是运算符。比如下面的语句中:floatx=1.5float*p=&xfloat*p=x 很多同学在这里有些迷惑,到底是第 2 条语句正确还是第 3 条语句正确呢?根据指针算法的定义很显然第 2条语句是正确的。迷惑的原因就在把*当成了运算符。其实,这里的 float*共同来修饰 p,定义一个指向浮点型的指针算法变量,同时要将一个指针算法&x 赋值给 p。为了方便对存储单元进行控制,我们可以设置某些变量专门存放指针算法,这样的变量称为指针算法变量。在课堂教学中,应注意使学生明白内存单元地址与内存单元内容这两个概念的区别,很多初学者在这个概念问题上常常弄混淆。 1.3 指针算法与数组 1.3.1 指针算法与数组区别。在 c 语言中数组与指针算法的关系非常密切,但它们还是有着本质上的区别。指针算法可以随时指向任意类型的内存单元,它的特征是可变。所以我们常用指针算法来操作动态内存。当数组作为函数的参数 进 行 传 递 时 , 该 数 组 自 动 退 化 为 同 类 型 的 指 针 算 法 。 例如:charx[]=chinachar*p=china 上述两个变量的内存布局情况是:数组 x 需要在1下载后可任意编辑内存中占用 6 个字节的空间。这段内存区通过数组名 x 来标志。指针算法 p 则需要 4 个字节的空间来存放地址,这 4 个字节用 p 来标志。其中存放的地址几乎可以指向任何地方,也可以哪里都不指。目前这个 p 指向某地连续的 6 个字节即字符串 china。在教学过...