数组的一些规则

一、int a[];

二、sizeof(a)//计算a[]的内存大小,sizeof是关键字,strlen计算时,仅计算有效字符,当计算指针时,sizeof(p)表示指针的p里地址的长度,strlen则表示指针p指向的有效字符个数。(字符串的存放方式:最后存在一个结束标志:\0,需要占一个字节)所以sizeof会计算\0的长度。

三、形参中,不存在数组,形参中的int a[]传递的是地址,占八字节(一个地址或指针所占的内存都是八字节)

四、实参传递时,数组名代表了数组的首地址,也可以直接写位数组首地址&a[0]

五、二维数组作为形参:

1、合法写法:a[2][3] a[][3](跟一维数组a[]一样,不用关心有多少个元素,但是需要关心二维数组中每个元素(一维数组)里面有多少个数据(列数)

2、不合法写法a[][] a[3][]

六、a[3][4]的三个子数组名:a[0],a[1],a[2]

1、a+1表示地址跳到a[1][0]的地址

2、a[1]+1表示地址从a[1][0]跳到a[1][1]地址

3、上列中的a[0]为子数组的数组名,可以表示地址

4、面向于第0行的地址:*(a+0)+1=a[0]+1=&a[0][1] ,a[0][1]=*(a[0]+1)=*(*(a+0)+1)

5、面向于整个二维数组的首地址:第0行首地址:a,第一行首地址:a+1或者&a[1]

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值