結構指針是指向結構的指針
發布時間:2014/6/7 20:24:23 訪問次數:850
結構指針是指向結構的指針。它由一 INA105KP個加在結構變量名前的“木”操作符來定義,例如用前面已說明的結構定義一個結構指針如下:
也可以省略結構指針名只作結構說明,然后再用下面的語句定義結構指針:
struct string*student;
使用結構指針對結構成員的訪問,與結構變量對結構成員的訪問在表達式上有所不同。結構指針對結構成員的訪問形式如下:
結構指針名一>結構成員
例如要給上面定義的結構中name和age賦值,可以用下面語句:
實際上,student->name就是(*student).name的縮寫形式。
需要指出的是結構指針是指向結構的一個指針,即結構中第一個成員的首地址,因此在使用之前應該對結構指針初始化,即分配整個結構長度的字節空間,這可用下面的函數完成,仍以上例來說明,例如:
student=(struct string*)malloc(size of (struct string》;
size of (struct string)臼動求取string結構的字節長度,malloc()函數定義了一個大小為結構長度的內存區域,然后將其首地址作為結構指針返回。注意以下兩點:
(1)結構作為一種數據類型,定義的結構變量或結構指針變量同樣有局部變量和全局變量之分,視定義的位置而定。
(2)結構變量名不是指向該結構的地址,這與數組名含義不同,因此結構中第一個成員的首地址是&【結構變量名]。
結構指針是指向結構的指針。它由一 INA105KP個加在結構變量名前的“木”操作符來定義,例如用前面已說明的結構定義一個結構指針如下:
也可以省略結構指針名只作結構說明,然后再用下面的語句定義結構指針:
struct string*student;
使用結構指針對結構成員的訪問,與結構變量對結構成員的訪問在表達式上有所不同。結構指針對結構成員的訪問形式如下:
結構指針名一>結構成員
例如要給上面定義的結構中name和age賦值,可以用下面語句:
實際上,student->name就是(*student).name的縮寫形式。
需要指出的是結構指針是指向結構的一個指針,即結構中第一個成員的首地址,因此在使用之前應該對結構指針初始化,即分配整個結構長度的字節空間,這可用下面的函數完成,仍以上例來說明,例如:
student=(struct string*)malloc(size of (struct string》;
size of (struct string)臼動求取string結構的字節長度,malloc()函數定義了一個大小為結構長度的內存區域,然后將其首地址作為結構指針返回。注意以下兩點:
(1)結構作為一種數據類型,定義的結構變量或結構指針變量同樣有局部變量和全局變量之分,視定義的位置而定。
(2)結構變量名不是指向該結構的地址,這與數組名含義不同,因此結構中第一個成員的首地址是&【結構變量名]。
上一篇:結構類型及變量的定義
上一篇:共用體類型的單元形式