C语言小结

数组

数组的定义及初始化:

int n = 5;
int a[n] = {1,2,3,4,5};
  • 注意:数组一旦给定,a就与这块内存匹配不可改变,也就是a++,–a,这些都是不对的。
    sizeof(a)的值在32位系统下是20.
    sizeof(a[0])在32位系统下是4.
    sizeof(a[5])在32位系统下也是4.
    //sizeof在32是关键字不是函数,函数求值是在运行的时候,而关键字sizeof求值是在编译的时候
    sizeof(&a[0])的值为4,取元素a[0]的首地址
    sizeof(&a)的值也是4,取数组a的首地址

  • &a[0]和&a的区别
    a[0]是一个元素,a是整个数组,虽然&a[0]和&a的值是一样的,但意义不一样
    前者是数组首元素的首地址,而后者是数组的首地址(陕西省省政府在西安,西安市政府也在西安)

  • 数组名能否作为左值和右值呢??
    1,数组名不能作为左值。当数组名是左值时,编译器会认为数组名是数组首元素的首地址,而这个地址开始的一块内存是一个整体,我们只能访问数组中的某个元素,而不能把数组当成一个整体进行访问。
    我们可以吧a[i]当做左值,而无法把a当做左值
    2, 数组名可以作为右值,作为右值时,表示的数组首元素的地址。

  • 数组名有两种情况代表的是整个数组:
    1、sizeof(arr)//整个数组的字节大小
    2、&arr+1;//数组最后一个元素的后面

  • 访问数组当中元素的方法:
    1、可以通过下标去访问
    2、通过指针的形式访问

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值