指向結構的指針的思考

# include <stdio.h>
# include <stdlib.h>
/*
 1.使用->引用結構體成員
 
 
 */


int main ()
{

    struct Student
    {
        char cName[20];
        int iNumber;
        char cSex;
        int iGrade;
    }student={"Girl",2017,'w',2};

    struct Student *pStruct;
    pStruct = &student; //指向student結構體變量
    printf("-----------the sudent's information----------\n");
    printf("Name:%s\n",(*pStruct).cName);
    printf("Number:%d\n",(*pStruct).iNumber);
    printf("Sex:%c\n",(*pStruct).cSex);
    printf("Grade:%d\n",(*pStruct).iGrade);
    printf("============使用->符號引用結構體成員==============\n");
    printf("Name:%s\n",pStruct->cName);
    printf("Number:%d\n",pStruct->iNumber);
    printf("Sex:%c\n",pStruct->cSex);
    printf("iGrade:%d\n",pStruct->iGrade);
    
    return 0;
}

1.student.iNumber

2.(*pStruct).iNumber

3.pStruct->iNumber

後兩種是通過結構體變量指針來引用的結構體變量中的成員,第2種在*pStruct上加上小括號的原因是因爲要提升 ”*pStruct“ 的運算優先級,因爲在默認情況 . 運算符的優先級是比*運算符的優先級要高的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章