程序中定義並初始化了stu結構類型的外部數組boy。在main函數中,ps被定義為指向stu類型的指針。在for的loop語句的表達式1中,ps被賦予boy的第壹個地址,然後循環5次,輸出boy數組中每個成員的值。
應該註意,雖然結構指針變量可以用來訪問結構變量或結構數組元素的成員,但它不能指向成員。也就是說不允許拿會員的地址去給。因此,下面的賦值是錯誤的。
ps = & amp男孩[1]。性;
但僅僅是:
ps =男生;(給數組第壹個地址)
或者:
ps = & amp男孩[0];(將第壹個地址賦予元素0)
11.7.3結構指針變量作為函數參數
在ANSI C標準中,允許將結構變量用作整體傳輸的函數參數。但這種轉移會將所有成員逐個轉移,尤其是成員為數組時,會耗費大量的時間和空間,嚴重降低程序的效率。所以最好的辦法就是用指針,也就是用指針變量作為函數參數來傳遞。此時從實參數到形參數只傳遞地址,減少了時間和空間的開銷。
例11.7計算平均分和不及格人數。用結構指針變量編程函數參數。
結構研究
{
int num
char * name
迷人的性愛;
浮動分數;}男孩[5]={
{101,"李平",' M ',45},
{102,“張平”,“M”,62.5},
{103,“何芳”,“F”,92.5},
{104,"程玲",' F ',87},
{105,"王明",' M ',58},
};
主()
{