数组

数组,简单的概念,无序的元素序列。创建一个数组就是在内存里面开辟一块连续的空间.二维数组依旧.

数组名是数组的首地址,这就是它的定义,也就是它的本质,因此不能说数组名是一个指针,简单来说sizeof操作就可看出两者不一样。不过数组名可以通过指针来转换到是.

指针数组和数组指针

一种说法而已,简单点

    int *a[4];   //指针数组a里面有4个元素,每个元素都是int *类型的指针

    int (*p)[4]; //数组指针p,指向一个长度为4的一维数组
    int c[3][4]={};  //定义一二位数组
    p = c;            

    /*
    c:二维数组名
    c[1]:一维数组名,sizeof求值为一维数组的大小,4*int占字节数
    c+1:指针,sizeof求值为sizeof(指针),64位为8,32位为4
    p:数组指针,指向一维数组的指针变量,值为&c[0][0],可以执行p++操作等
    p+1:指向下一行 一维数组,即&c[1][0].
    p[1][2]:同*(*(p+1)+2),c[1][2]
    *p+1:指向p[0][1]
    */

二维数组

必须定义列数:比如

    int a[][] = {1,2,3,4}; //错误用法
    int a[][2] = {1,2,3,4}; //正确

无法获取列数如何让数组元素分配,行数不确定的话毕竟可以通过数组元素个数确定.

作为函数参数进行传递时,可用上面提到的数组指针。或直接使用数组

    int func(int a[][3]);
    int func(int (*a)[3]);

数组名

数组名本身就类似指针.

    int a[] = {1,2,3,4,5};

假设a地址为0x0000,那么a+1为0x0004,&a+1为0x0014

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值