指向结构的指针的思考

# 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“ 的运算优先级,因为在默认情况 . 运算符的优先级是比*运算符的优先级要高的。

 

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