指针数组 和 数组指针 指针的指针
T *P[n]
T(*P)[n]
指针数组
T* a[N]: 指针数组:数组,数组内容为指针。类型名 *数组标识符[数组长度]。
Char *name[5]//表示指针数组,有n个指字符数据的指针元素组成
指针的指针
Char **p
P=name;可以等于指针数组
数组指针
数组指针只是一个指针变量,似乎是C语言里专门用来指向二维数组的,它占有内存中一个指针的存储空间二维数组b[N][M]
T(*a )[M]: 数组指针,指针,指针指向数组
(*指针变量名)[长度]即(*P)[M]。“长度”表示二维数组分解为多个一维数组时,一维数组的长度,也就是二维数组的列数。
a[i][j]=*(*a+i)+j
因此:实参为数组时,函数定义T f (T a[][M])或者T f (T (*p)[M])
应用:
#defineTAB_LEN 15
typedef struct hash
{
int adrss ; //哈希地址
int count; //查找次数
node *date; //存入的数据
}hashtable,hash_array[TAB_LEN];
void hashtable_init(hashtable *b);
hash_array hb;
hashtable_init(&(hb[i]));
char*a[10];
creat_hash(hashtable*b,int n,char *p[N]) ;//
creat_hash(hb,TAB_LEN,a);