程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言基礎教程(四)指針、結構、聯合和枚舉(12)

C語言基礎教程(四)指針、結構、聯合和枚舉(12)

編輯:關於C語言
二、結構指針
結構指針是指向結構的指針。它由一個加在結構變量名前的"*" 操作符來定義,例如用前面已說明的結構定義一個結構指針如下:
struct string{
char name[8];
char sex[2];
int age;
char addr[40];
}*student;
也可省略結構指針名只作結構說明,然後再用下面的語句定義結構指針。
struct string *student;
使用結構指針對結構成員的訪問,與結構變量對結構成員的訪問在表達方式上有所不同。結構指針對結構成員的訪問表示為:
結構指針名->結構成員
其中"->"是兩個符號"-"和">"的組合,好象一個箭頭指向結構成員。例如要給上面定義的結構中name和age賦值,可以用下面語句:
strcpy(student->name, "Lu G.C");
student->age=18;
實際上,student->name就是(*student).name的縮寫形式。
需要指出的是結構指針是指向結構的一個指針,即結構中第一個成員的首地址,因此在使用之前應該對結構指針初始化,即分配整個結構長度的字節空間,這可用下面函數完成,仍以上例來說明如下:
student=(struct string*)malloc(size of (struct string));
size of (struct string)自動求取string結構的字節長度,malloc()函數定義了一個大小為結構長度的內存區域,然後將其詐地址作為結構指針返回。
注意:
1.結構作為一種數據類型,因此定義的結構變量或結構指針變量同樣有局部變量和全程變量,視定義的位置而定。
2.結構變量名不是指向該結構的地址,這與數組名的含義不同,因此若需要求結構中第一個成員的首地址應該是&[結構變量名]。
3.結構的復雜形式
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved