1. 程式人生 > >C指向結構體變數的指標(結構指標變數)

C指向結構體變數的指標(結構指標變數)

    一個指標變數當用來指向一個結構體變數時,稱之為結構體指標變數。結構體指標變數中的值是所指向的結構變數的首地址。通過結構指標變數即可訪問該結構的變數。

結構指標變數說明的一般形式如下:

struct 結構名 *結構指標變數名

    結構名和結構變數時兩個不同的概念,不能混淆。結構名只能表示一個結構形式,編譯系統並不會對它分配記憶體空間。只有當某變數被說明為這種型別的結構時,才對該變數分配儲存空間。

    有了結構指標變數,就能更方便地訪問結構變數的各個成員。其訪問的一般形式為:    

    (*結構指標變數).成員名

    結構體指標變數->成員名    

#include <stdio.h>
#include <stdlib.h>

int main()
{
	struct Student
	{
		char cName[20];
		int iNumber;
		char cSex;
		int iGrade;
	}student={"Girl",2017,'w',2};
	
	struct Student *pStruct; 
	pStruct = &student;
	printf("Name:%s\n",(*pStruct).cName);
	printf("Number:%d\n",pStruct->iNumber);
	printf("Sex:%c\n",student.cSex);
}

通過上面的程式碼可見,以下三種用於結構成員的形式是完全等效的。

結構變數.成員名

(*結構指標變數).成員名

結構指標變數->成員名