关于指针与数组

在平时的学习中,往往有一个误区“数组等于指针”,多数情况下如此,但很多时候却并不是这样。
首先,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)

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

原文地址:https://www.cnblogs.com/riskyer/p/3329094.html