C 数组

     C中,几乎所有的使用数组名的表达式中,数组名是一个指针常量,表示数组中第一个元素的地址,此指针常量的类型取决了数组的类型,如果数组是int型,那么数组名的类型就是“指向int的常量指针”。

      但是 数组和指针并不是完全相同的也不是同一个概念。数组有自己独特的属性,如数组具有固定的数量的元素,指针只是一个标量值。数据有确定的长度。编译器使用数组名来记住其数据的属性,只有数组名在表达式中使用的时候,编译器才会产生一个指针常量。生成的只有一个指针常量,而不是指针标量,你不能修改常量的值。因为数组的长度确定的,数组元素所占字节是确定的,所有数组在内存中的位置的相对恒定的。由数组名生成的指针常量表示的是数组第一个元素的位置,也是相对恒定的,不能变化。只有在一种情况下此数组名表示的指针常量才会变化,就是把数组移动到内存的其他位置,实质上这时候,数组已经发生了变化,严格意义上,不是以前的那个数组了。

      只有两种情况,数组名不能用指针常量表示:1 数组名作为sizeof的操作符 2. 单目操作符&的操作数。

     sizeof返回的是数组的长度,而不是指向数组的指针的长度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值