关于指针与数组


1.指针与数组的区别小结:


在平时的学习中,往往有一个误区“数组等于指针”,多数情况下如此,但很多时候却并不是这样。
首先,file1.c:
int man[100];
file2.c
extern int *man;
上面的例子中会因为类型不匹配而报错。

指针总是有类型限制,是因为编译器需要知道对指针进行解除引用的时候需要取几个字节。
例如:int a[2][3][5];
int (*p)[3][5]=a;
int (*r)[5]=a[i];
int *t=a[i][j];
int u=a[i][j][k];
指针大小是一样的,但是指针所指元素的大小是不同的,这就决定了当指针解除引用的时候所取得的数值。

另外:
int a[20];
int *b=(int *)malloc(sizeof(int)*20);
然后sizeof(a)!=sizeof(b)

指针数组
保存数据的地址保存数据本身
间接访问数据直接访问数据
常用与动态数据结构常用于固定数目类型相同的元素

2.多维数组的间隔定义


对于一个3*3的数组,如果我们仅仅想定义其中的第一行和第三行,那么我们应该如何做呢?看下文:
 6   int a[3][3]={
  7     [0]={1,2,3 },
  8     [2]={7,8,9 },
  9   };


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值