zoukankan      html  css  js  c++  java
  • 结构体中成员的引用

    结构体如下:
    struct student
    {
    int num;
    char name[20];
    char sex;
    float score;
    };

    1. 结构体的初始化

       struct student aa = {1001, "zhang", 'M', 80, 5};

    2. 引用整个结构体

       struct student *p = &aa; //p指向aa这个结构体的首地址

    3.结构体中,字符数组的引用

       char *q = aa.name;  //q指向 "zhang" 。因为 "zhang" 本身已经是字符数组, 所以在指向他时,不需要再加一个 “&”

    4.结构体中,普通类型的引用

       int *r= &aa.num;  // r 指向 1001 的地址

       char *s= &aa.sex; // r 指向 'M' 的地址

    5. 

    因为有了p指向aa, 所以在引用aa的成员时, aa.num 和 p->num是等价的,和 (*p).num也是等价的

    即  aa.num  ,   p->num,   (*p).num  均指向 name  

    6.

    结构体数组

    struct student sru[3] =
    {
    {1001, "zhang", 'M', 60.5},
    {1002, "peng", 'M', 100},
    {1003, "Wang", 'W', 90.9}
    }


    struct struct *p = stu;

    如果此时,我们想访问数组中第一个元素的name, 即 "zhang".
    有三种方法:
    A) 直接访问数组stu
        stu[0].name;

    B) 用指针p访问数组stu
        因为p已经指向了stu, 所有不能再用"."来访问了,应该用"->"
        p->name;

    C) 接B,也可以写成(*p).name;


    以此类推,如果想访问数组中第二个元素的name, 即 "peng".
    有三种方法:
    C) 直接访问数组stu
        stu[1].name;

    D) 用指针p访问数组stu
        (p+1)->name;
        注意,因为+1是一个四级运算符,所以必须先用括号括起来

    E) 接D,也可以写成(*p).name;
        (*(p+1)).name;

  • 相关阅读:
    smarty基础
    phpcms 内容模块PC标签调用
    phpcms v9中的$CATEGORYS栏目数组
    PHP如何实现验证码
    PHP生成一个不重复随机数组的封装方法
    简单实现php文件管理
    PHP-----作业:查询数据,在页面上显示
    PHP-----设计模式六大原则
    PHP-----静态
    PHP-----面向对象的设计模式:工厂模式例题
  • 原文地址:https://www.cnblogs.com/kungfupanda/p/4855712.html
Copyright © 2011-2022 走看看