数组与指针的关系

本文详细阐述了C语言中数组的两个基本属性:元素类型和元素个数,并探讨了数组名在sizeof语句内外的不同含义。在表达数组元素时,介绍了下标和指针两种方式,并通过实例解释了数组名加偏移量相当于指针加偏移量的原理。同时,文章指出数组名常被用作指针,如int *p = ar与int *p = &ar[0]等价。总结了访问数组元素的常用方法及其底层原理。
摘要由CSDN通过智能技术生成

数组名有两个属性

 

一,数组元素的类型

二,数组元素的个数(数组的大小)

其中,在sizeof语句中,数组名是代表整个数组的意义

除了sizeof语句外,其他语句中出现的数组名都代表的是数组首元素的地址,即作为指针使用。

 输出数组第i+1个元素,有两种方式:

 假如定义了数组名为ar,定义了数组指针p,

 一、使用下标方式表示:ar[ i ]或者p[ i ] (系统会自动将p[ i ]转换成指针方式*(p+i))

 二、使用指针方式表示:*(ar+i)或者 *(p+i)。

其中,ar+i 或者 p+i 是输出数组元素的地址。

 i [ ar ]等同于ar [ i ],都是以*(ar+i)的方式访问数组第n个元素。

int *p=&ar [0] 与

int *p=ar 是等价的。

 因为&ar[0]等价于&*(ar+0),表示ar数组第零个元素的地址,而ar本身就代表ar数组的第零个元素的地址,所以int *p=&ar [0] 与int *p=ar 是等价的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值