A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


3.结构指针定义和初始化

   1、什么是结构体指针?

       用来存放结构体变量地址的指针变量。结构指针变量中的值是所指向的结构体变量的首地址。

    2、结构体指针定义

       struct 结构体名  *指针变量名;

       //定义一个结构体

      struct Car{

     

          int lunzi;

          int speed;

       }car1;

       struct Car *p=NULL; //定义一个结构体指针变量

       p = &car1;//正确的

       p = &Car;//错误的

  */

#include <stdio.h>

int main(int argc, const char * argv[]) {


    //定义一个结构体

    struct Car{

        

        int lunzi;

        int speed;

        

    }car1;

   

    //定义一个结构体指针

    struct Car *p=NULL; //定义一个结构体指针变量

   

    p = &car1;//正确的

   

    //p = &Car;//错误的

   


    //结构体名:Car

    //结构体变量名 car1

    //结构体指针: p

   

    return 0;

}

4.结构体指针间接访问成员值

1、结构体变量的成员值

  

       struct Student{

      

            int age;

            char *name;


       };


       //定义一个结构体的变量


       struct Student stu1={18,"张三丰"};


       //结构体变量的成员值有2个

       // stu1.age    值 18

       // stu1.name   值 张三丰


     2、用结构体指针间接的访问结构体变量的成员值


       //

       struct Student *p = &stu1;


       //使用p 获取 18   张三丰



       有两种方法:


       1) (*p).age     访问年龄    (*p)--->stu1

            (*p).name    访问姓名


       2) p->age   访问的年龄

           p->name  访问的是姓名


          注意:p一定是一个结构体指针


          stu1->name; //错误的


#include <stdio.h>


int main(int argc, const char * argv[]) {

   

    struct Student{

        

        int age;

        char *name;

        

    };

   

    //定义一个结构体的变量

   

    struct Student stu1={18,"张三丰"};

   

    //结构体变量的成员值有2个

    // stu1.age    值18

    // stu1.name   值 张三丰

   

   // 2、用结构体指针间接的访问结构体变量的成员值



    struct Student *p = &stu1;

    printf("姓名:%s,年龄:%d\n",(*p).name,(*p).age);

    printf("姓名:%s,年龄:%d\n",p->name,p->age);

    return 0;

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马