c语言数组的难点,C语言指针与数组的难点分析

第 14 卷第4 期

2002 年 12 月

湖南轻工业高等专科学校学报

Journal of Hunan Light Industry College

Vol . 14 No . 4

Dec .2002

【文章编号] 1009一3702(2002)04 一0025 一03

C 语 言 指 针 与 数 组 的难 点 分 析

杨鼎强’,乐光学2

( t .长沙电力学院 侯家塘校lK计算机系,湖南 长沙 410015;2.怀化学院 计算机系,湖南 怀化 418008)

【摘要I 文章探讨了c 语言程序设计中指针与数组的关系,通过对相应的程序设计方法的分析认为:若是顺序

访问数组,指针访问最快;若是随机访问数组,使用下标更好

【关键词] C程序设计 ;指针 ;数组

〔中图分类号」TP311.1 【文献标识码】A

1 指针、数组的指针及指向数组的指

当定义了一个变量后,就对应有三个方面的内

容 :变量名、变量存储空间的地址和变量中存放的数

值。

指针即是地址。数组的指针是指整个数组的起

始地址,也是数组中第一个元素的地址,即数组名。

如有以下定义 :

int a[101,

则数组的指针是 &a[0] ,且 a 与 &4 01等价。

指向数组的指针指的是能够指向数组中任一元

素的指针。

若程序中有以 卜定义 :

int a[10] ,* P;

则可以使用 1〕指向整型数组 a 中间的任一个元

素。

若有p= &。[ ],

则 p 指向了。〔〕中第 i 个(下标为 i 的)元素。

2 指针与一维数组

C语言规定: 如果指针变量 pti 已指向数组中的

一个元素,则 pti i 1指向同一数组中的下一个元素,

见图 工。例如,有以 下定义 :

int dates[4],二pti;

则 dates + 2 = &date耗2] ;

‘(dates +2) - dates[2]

进一步推]’一,若有

pti= & dates[n] ;

那pti + i 就指向dates[n+ i] ;

二(pli +i)与dates[n+ i]等价;

pti一i则指向dates[n 一il ;

* (pti一1)与dates[n一i]等价;

在程序设计中,数组既可以用下标访问,也可以

用指针来访间。以下两个函数均为计算整型数组中

各元素值的总和

指针以2个字节为单位增加,因为叫是 int类型的

厂一寸 一几

pttV

5 60 14 5 6 0 15

pti+l pti+2 pd+3

V 口 V

56016 56017 560 18 56019 56020 56021- 机器地址赢

dates101 dates[l l dstes[21

图 I 指针与数组加法

函数 1

int array_sum( int

{

array, int n )

int sum = 0 , * p ;

int * array.end 二array 十u

(or(p= array;p< array_end ;p+ 十)

sum 十= * P ;

return( sum) ;

函数 2

[收稿日期12002 一08 29

!作者简介1杨;pil强( t966 ) .女,湖南宁乡人,长沙电力学院副教授,从事计算机专业的教学和研究工作

A 南轻工业高等专科学校学报 2002 年 12 月

int array_sum(int array,int n)

{

int sum = 0 ;

in t i ;

该二维数组可以简化为一个指针变量p 指向一

个 一维数组 见图L

for( i= O; i< n ; i +

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值