結構體指標和結構體陣列
阿新 • • 發佈:2019-01-23
struct h
{
BTNode *TQ;
int
level;
?
}a[100],b,*c[3],*d;
///////////////////////////////////////////////
所以當用到他們時,要麼重定向,比如:
///////////////////////////////////////////////
比如: struct name { int data; } na; int ia; 這裡的na是型別struct name;的一個變數。而ia是int型別的一個變數。 struct name* np; int* ip; 這裡的兩個指標也是一樣的,只是型別不同。 可以這樣分配記憶體。 1. np = &na; ip = &ia; 宣告陣列也是一樣的。 比如: struct name nArray[100]; int iArray[100]; iArray就是有100個int型的變數。 nArray也是一樣的有100個struct name 這種型別的變數。 指標陣列也是一樣的。 struct name* npArray[10]; int* ipArray[10]; ipArray表示有10個整型的指標。 npArray表示有10個struct name型別的指標。 宣告動態陣列的方式也是一樣的。 struct name* dyNArry; int* dyIArray; 比如我們要申請100個節點的陣列 如果你覺得struct name的型別名稱太長了。你可以用typedef來定義 例如: typedef struct name Name; 以後就直接用Name做型別名稱就可以了
////////////////////////////////////////////////////
a是陣列,a是有100個h型別元素的陣列,b是h型別的元素,c是h型別的陣列指標,c的每一個元素都和d的型別是一樣的,例如c[0]可以指向a[0],也可以指向b,d也可以指向b或a[0]. 以下幾句是合法的 c[0]=&b;//c[0]指向b d=&b;//d指向b d=c[1];//指標c[1]賦值給d,因而d和c[1]指向的成員相同 d->level;//輸出指標d指向的h型別結構體的成員level的值 .