水下功夫做透,水上才能顺风顺水。

指针、数组和结构体的一些思考

(1)数组名和指针的关系

1.数组名可以看作是常量指针。

2.一维数组名是一级指针。

3.二维数组名是二级指针。

4.二维数组名取[]后,得到一级指针。

例子:int a[3][5];

a是二级指针。

a[0]、a[1]、a[2]是一级指针,构成一级指针数组,a是他们的首址。

a即&a[0]、a+1即&a[1]、a+2即&a[2]

(2)如何在堆中申请二维数组。

typedef unsigned UID[8];//UID代表unsigned [8],是一种数组类型,可以定义数组。

UID uid;//uid是unsigned [8]类型数组的数组名,属于常量指针。

UID *pUid = NULL;//定义数组指针。数组指针本质是二级指针,所以可以用数组指针对应二维数组操作。

pUid = (UID*)malloc(6*8);//申请二维数组。

(3)数组和结构体赋值0

数组和结构体赋初值0,可以直接用={0};

当对其赋值0时,则需要用memset函数。

 

posted @ 2015-03-16 16:54  北方寒士  阅读(170)  评论(0编辑  收藏  举报