精华内容
下载资源
问答
  • 结构体数组和结构体指针的应用,结构体成员引用的表示方法 //结构体数组和结构体指针的应用,结构体成员引用的表示方法 // Created by acer on 2020/8/30. #include<stdio.h> struct student{ int num; char...

    结构体数组和结构体指针的应用,结构体成员引用的表示方法

    //结构体数组和结构体指针的应用,结构体成员引用的表示方法
    // Created by acer on 2020/8/30.
    #include<stdio.h>
    struct student{
        int num;
        char name[20];
        char sex;
        int age;
        float score;
    };
    
    int main(){
    //    定义结构体数组并初始化
        struct student stu[3]={{11302,"wang",'F',20,483},
                               {11303,"Liu",'M',19,443},
                };
        struct student student1={11301,"fang",'M',21,485},*p,*q;
        int i;
    //    *p指向结构体变量
        p=&student1;
    //    访问结构体变量
        printf("%s,%c,%5.1f\n",(*p).name,p->sex,studengt.score);
        q=stu;  //q指向结构体数组元素
    //   循环访问结构体数组的元素(下标变量)
        for (i = 0;  i<2 ; i++,q++) {
            printf("%s,%c,%5.1f\n",q->name,q->sex,q->score);
        }
        return 0;
    }
    

    结果:
    fang,M,485.0
    wang,F,483.0
    Liu,M,443.0

    printf("%s,%c,%5.1f\n",(*p).name,p->sex,student.score);
    

    由结果可见这三种表示方法含义是相同的。
    成员变量引用的方式有:

    1. 运用成员域访问运算符:<结构体变量名>.成员名,student.score;
    2. 利用间接访问成员域的运算符:指针变量->成员,如p->sex;
    3. 利用结构体指针变量访问结构体变量的成员:(*结构体指针变量名).成员名。如(*p).name;

    容易混淆:
    输入数据的时候,姓名是字符串不用加&!!!,但是年龄,分数,性别要加。
    如:

    scanf("%s,%c,%d",p->name,&p->sex,&p->age);
    
    展开全文
  • 结构体之引用结构体成员变量

    千次阅读 2020-11-05 17:02:01
    引用结构体成员变量 一个结构体包含一个或者多个成员变量,在实际使用中,就需要对其成员变量进行引用,对于一个已经定义了的结构体变量和一个指向该结构体的指针变量。 可以用一下三种情况引用结构体 成员变量。 1...

    引用结构体成员变量

    一个结构体包含一个或者多个成员变量,在实际使用中,就需要对其成员变量进行引用,对于一个已经定义了的结构体变量和一个指向该结构体的指针变量。

    可以用一下三种情况引用结构体 成员变量。
    

    1、由结构体变量名引用其成员:

    结构体变量名.成员名

    2、由指向结构体的指针变量引用结构体成员
    指针变量名 -> 成员名

    3、(*指针变量名).成员名

    结构体指针:指向结构体变量的指针,一个结构体变量的起始地址就是这个结构体变量的指针。如果把一个结构体变量的起始地址存放在一个指针变量中,那么这个指针变量就是指向该结构体的变量。

    其中,"."  是成员运算符,它在所有的运算符中优先级最高。  “->”  结构体指向运算符 
    
    struct student {   
     //成员列表    
     string name;  //姓名    
     int age;      //年龄    
     int score;    //分数 
     };
     struct student stu = { "小明",6,100, };
    int main() {  
    
       //定义了一个结构体 指针p,并且对它进行初始化
       
         struct student * p = &stu;   
         //引用结构体成员变量的三种形式:
      cout<<"stu.score= "<<stu.score<<endl;
      cout<<"p->score ="<<p->score<<endl;
      cout<<"(*p).score= "<< (*p).score<<endl;
       system("pause");
       return 0; 
        }
    

    }

    另外,对于引用结构体数组变量的成员变量。具体做法:
    
    #include<iostream>
    using namespace std;
    #include<string>
    struct student {
    	//成员列表    
    	string name;  //姓名    
    	int age;      //年龄    
    	int score;    //分数
    };
    //定义结构体变量,并初始化。
    struct student stu[3] = {
       {"小明",6,100 },
       {"小芳",7,99 },
       {"小华",16,80 }
    };
    int main() {
    
    	struct student * p;
    	for (p = stu; p < stu + 3; p++)
    	{
    		cout << "年龄是:" << p->age << "名字是:" << p->name << "分数是:" << p->score << endl;
    
    
    	}
    
    	system("pause");
    	return 0;
    
    }
    
    展开全文
  • 结构体成员变量的引用 结构体变量名.成员名 student.num=10010; "."是成员运算符,它在所有的运算符中优先级最高。 结构体指针:指向结构体变量的指针,一个结构体变量的起始地址就是这个结构体变量的指针。如果...

    结构体成员变量的引用

    结构体变量名.成员名

    student.num=10010;

    "."是成员运算符,它在所有的运算符中优先级最高。

    结构体指针:指向结构体变量的指针,一个结构体变量的起始地址就是这个结构体变量的指针。如果把一个结构体变量的起始地址存放在一个指针变量中,那么这个指针变量就是指向该结构体的变量。

    为了使用方便和直观,C语言允许把(*p).num用p->num来代替,“->”代表一个箭头,p->num表示p所指向的结构体变量中的num成员。同样,(*p).name等价于p->name。"->"称为指向运算符。

    如果p指向一个结构体变量stu,以下3中用法等价:

    1 stu.成员名(如stu.num);

    2 (*p).成员名(如(*p).num);

    3 p->成员名(如p->num)。

    转载于:https://www.cnblogs.com/prayer521/p/5615878.html

    展开全文
  • 设计一个结构体,存储某个学生的主要学籍信息,包括姓名,性别,班级和学号等,使用结构体实现对结构体变量成员的输入和输出 #include<stdio.h> struct si { char name[30]; char sex[10]; unsigned int ...

    设计一个结构体,存储某个学生的主要学籍信息,包括姓名,性别,班级和学号等,使用结构体实现对结构体变量成员的输入和输出

    #include<stdio.h>
    struct si
    {
     char name[30];
     char sex[10];
     unsigned int classno;
     char studentid[15];
    };
    int main()
    {
     int i=0;
     struct si yansl,*pstu;
     pstu=&yansl;				//使指针pstu指向结构体变量yansl
     printf("输入学生学籍信息:\n");
     printf("学生姓名:\n");
     scanf("%s",yansl.name);
     printf("学生性别:\n");
     scanf("%s",yansl.sex);
     printf("学生班号:\n");
     scanf("%s",yansl.classno);
     printf("学生学号:\n");
     scanf("%s",yansl.studentid);
     printf("使用指针输出学生学籍信息:\n");
     printf("学生姓名:%s\n",pstu->name);
     printf("学生性别:%s\n",pstu->sex);
     printf("学生班号:%s\n",pstu->classno);
     printf("学生学号:%s\n",pstu->studentid);
    }
    展开全文
  • 因为结构体成员在内存中的存储数据是按照成员定义顺序存储的,因此,要回答这个问题,首先得解决两个问题 1):该结构体成员的地址 2):该结构体成员在结构体中的偏移地址 意识到这两个问题,还得注意两个细节: 1...
  • 个人博客 所有文章除特别声明外,均...为什么要获取结构体成员变量的偏移 我在做嵌入式工作时,在已知要获取信息的 flash 地址时,需要取出相对应的信息元素,这个时候时常需要知道结构体相对于已知地址的偏移,方便快.
  • C中对于结构体成员的两种引用方式: 1、结构体变量.成员; 2、结构体变量->成员; 其中,第一种方式只能在结构体变量是结构体实体时能使用,而第二种方式是当结构体变量为指针类型的时候使用。 #include<stdio...
  • C++三种形式引用结构体成员变量

    千次阅读 2020-07-04 20:10:06
    结构体变量名.成员名 指针变量名->成员名 (*指针变量名).成员名(注意:*不能省略因.的结合性大于*) #include <iostream> using namespace std; struct student1 { int Code; char Name[20]; ...
  • C中对于结构体成员的两种引用方式: 1、结构体变量.成员; 2、结构体变量->成员;其中,第一种方式只能在结构体变量是结构体实体时能使用,而第二种方式是当结构体变量为指针类型的时候使用。 请看下面的简单例子...
  •   获得结构体成员偏移量的方法可以参照博客:   https://blog.csdn.net/zhanshen2015/article/details/51500757 现在主要以第二种方法(通过宏函数计算结构体成员偏移量)为例,做简单整...
  • 引用结构体成员变量,但未弹出/自动显示结构体成员变量名 2.确保代码已经编译,若未编译,则编译后(代码报错也不影响)重新用引用引用成员变量3.若此时仍未显示成员变量名,则是设置问题,需要在:选项-文本...
  • Linux内核学习 之 C语言中 以结构体成员找结构体。重点就是加粗的部分。 啊,什么,还是不太理解。说的再详细点: 给你一个结构体成员的地址,让你找这个结构体的首地址。’ 举个栗子: typedef struct node { ...
  • C语言结构体变量 指针以及对结构体成员的访问

    千次阅读 多人点赞 2019-10-12 12:21:26
    文章目录结构体结构体变量访问成员方法结构体指针变量访问成员方法 结构体 struct AGE { int year; int month; int day; }; struct STUDENT { char name[20]; //姓名 int num; //学号 struct AGE birthday...
  • 结构体引用

    2018-06-15 18:01:00
    今天关于结构体一些疑问,在这里标记一下...结构体的定义如下所示,struct为结构体关键字,tag为结构体的标志,member-list为结构体成员列表,其必须列出其所有成员;variable-list为此结构体声明的变量。 1 s...
  • 获取结构体成员偏移量 具体方法 #define offsetoff(TYPE,MEMBER) ( (size_t)( &( ( (TYPE*)0 )->MEMBER ) ) ) 实现解析 (TYPE*)0是一个空指针,如果使用空指针访问成员肯...
  • vs code 在补全c语言代码时(keil工程文件)不能正确提示结构体成员变量。 解决方法: 在系统setting.json文件中找到C_Cpp.intelliSenseEngine配置删掉(或者将值改成其他的,自己试试看 没太深入)。 删掉"C_Cpp....
  • C++关于struct和class的区别,可以看上...结构体成员列表初始化,来个例子: 1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 struct Child{ 5 string name, fun; ...
  • 结构体成员引用

    千次阅读 2019-07-02 22:49:25
    结构体如下:struct student{ int num; char name[20]; char sex; float score;}; 1. 结构体的初始化 struct student aa = {...2. 引用整个结构体 struct student *p = &aa; //p指向aa这个结构体的首地址 ...
  • 一、概述 1.1 背景 需要将不同类型的数据组合成一个有机的整体(类似于JAVA中的类) ...1.4 基本结构体 struct student { int numl; char name[20]; char sex; int age; float score; char add
  • 作为开发者的你,可能也注意到了,Windows开发中有一项通用设计规则,即:结构体中通常会有一个数据成员,来表示该结构体的的大小,同时,Windows会严格检查结构体的大小。举个例子在上面的结构体中,结构体的大小...
  • 结构体的自引用(self reference),就是在结构体内部,包含指向自身类型结构体的指针。  结构体的相互引用(mutual reference),就是说在多个结构体中,都包含指向其他结构体的指针。 1. 自引用 结构体 1.1 ...
  • 结构体成员偏移地址

    千次阅读 2013-03-09 13:46:36
    当然,还有其他方法可以算出结构体成员的偏移地址,但无疑这种方法是上佳之选.:)     获取一个结构体中的某字段的偏移量,linux的内核代码中是这样定义实现的: offset = (unsigned long)(&((type*)0))...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,410
精华内容 17,364
关键字:

结构体成员的引用方法