精华内容
下载资源
问答
  • [img=https://img-bbs.csdn.net/upload/202009/12/1599880442_962431.jpg][/img] 怎样对结构体成员引用及赋值、输出操作?
  • C语言结构体变量

    2020-08-25 10:01:46
    结构体是一个或多个变量的集合,这些变量可以是不同的类型,为了处理的方便而将这些变量组织在一个名字之下。...结构体变量的定义 结构体就是将不同类型的数据组合成一个有机的整体,以便于引用。如定义一个学生的信.

    结构体是一个或多个变量的集合,这些变量可以是不同的类型,为了处理的方便而将这些变量组织在一个名字之下。比如我要统某个班的学生信息(包括姓名,学号,成绩),每个学生都需要至少3个变量,如若学生人数较多,那需要的变量就非常之多了。为了解决这样的问题,就要用到结构体这种构造类型,我们可以将每个学生的各项信息以不同类型的数据存放到一个结构体中,如用字符型表示姓名,用整型或字符型表示学号、用整型或实型表示成绩。

     

    结构体变量的定义

    结构体就是将不同类型的数据组合成一个有机的整体,以便于引用。如定义一个学生的信息:

    struct student{int num;char name[20];int score;};struct为结构体关键字,student就是这结构体的类型名,而 num,name, score就是该结构体的成员,他们可以是不同类型的,注意在定义类型的时候不要对结构体成员num,name, score赋初值。其次就是在大括号后面要有分号“;”。

    定义结构体变量的方式

    定义变量的方式都是大同小异的,都为数据类型+变量名这样一种方式,比如int型,首先得有int这样一个数据类型,然后再用int这个数据类型去定义一个变量,同样的,我们要定义一个结构体变量,必须要有一个结构体类型,然后用这个类型去定义一个变量。结构体变量的定义有多种方式:

    方式一:先定义结构体类型再定义变量名

    其中struct是关键字,student是结构体标记(用于为结构体命名),struct student代表该结构体的类型, 大括弧里面就是结构体的成员。注意大括弧的后面一定要有一个分号‘;’。到此为止我们有了"struct student"这样的类型了,struct student就等价于我们的int一样,接下来我们就要定义一个这样类型的变量,定义格式如下:struct student zhangsan; 这个zhangsan就是我们所要的结构体变量。

    方式二:在声明类型的同时定义变量

    如:

    这种方式定义结构体,后续可以根据需要定义新的变量,如struct student Wangwu。 注意:不能用Zhangsan去定义新的变量,这里Zhangsan、Lisi都为变量名而不是结构体类型。

    方式三:直接定义结构体类型变量

    这种定义方式中结构体变量只能在定义结构体类型的时候定义,不能再定义其他的变量。这样的定义的结构体类型是没有名字的,我们也可以用typedef重新为这样的结构体类型命,如:

    使用typedef后,我们可以用Zhangsan作为数据类型来定义新的变量。需要注意的是,不能直接使用Zhangsan.num,因为Zhangsan不是变量,而是结构体类型。

    结构体变量的初始化:

    结构体变量的应用:

    结构体中的成员,可以像普通变量那样单独使用,如下面例子中,结构体变量A中的成员num,可以用A.num的方式来使用。

    结构体变量的成员引用:结构体变量名.成员名

    关于结构体的一点说明:

    1、不能将结构体变量作为整体进行操作:printf("%d, %d\n", A);错误scanf("%d, %d\n”,&A); //错误printf("%d, %d\n”, A.num, A.score); //正确scanf("%d, %d\n”, &Lucy.num, &Lucy.sex); //正确2、当结构体变量的成员也是结构体类型时,引用必须用最底层的成员变量,如下

    3、成员名可与程序中的变量名相同,二者代表不同对象

    4、可以引用结构体变量成员的地址,也可以引用结构体变量的地址,例如:scanf("%d", &A.num); //输入A.num的值printf("%d", &A); //输出Bob的首地址目的:主要用作函数参数,传递结构体变量的地址。5、允许具有相同类型的结构变量可以相互赋值,其它情况不允许对结构变量直接赋值。

    展开全文
  • 有以下声明和定义: <p>struct Student { char num[10]; int age; }; <p>struct Student stu...引用结构体变量成员表达式错误是 。 A. (p++)->num B. p->num C. (*p).num D. stu[3].age</p>
  • C语言结构体变量的定义及引用

    万次阅读 多人点赞 2018-08-08 16:05:24
    一、结构体变量的定义 1.结构体类型与结构体变量分开定义 一般形式如下: struct<结构体名><结构体变量名>; eg:struct student student1,student2; 关键字struct要与结构体名student一起使用,...

    一、结构体变量的定义

    1.结构体类型与结构体变量分开定义

    一般形式如下:

    struct<结构体名><结构体变量名>;

    eg:struct student student1,student2;

    关键字struct要与结构体名student一起使用,共同构成结构体类型名

     

    2.结构体类型与结构体变量同时定义

    一般形式如下:

    struct<结构体名>

    {

    <成员列表>

    }<结构体变量名>;

     

    3.无名结构体与结构体变量同时定义

    一般形式如下:

    struct

    {

    <成员列表>

    }<结构体变量名>;

    由于这里省略了结构体名,没有完整的结构体类型名,所以不能在其他位置再定义此结构体类型的变量

     

    4.使用typedef为已有结构体类型取“别名”

    一般形式如下:

    typedef struct

    {

    <成员列表>

    }<别名>;

    这里的别名就相当于结构体类型名,之后就可以使用它定义结构体变量了

    eg:

    typedef struct

    {

    <成员列表>

    }STU;

    STU student1,student2;

    那么这里就定义了俩个结构体变量student1,student2

     

    二、结构体引用

    1.通过“ · ”引用

    结构体变量名.成员名

    注:注意结构体变量名与成员名之间有点

     

    2.通过“->”引用

    结构体指针变量名->成员名

    展开全文
  • 关于结构体引用变量的符号 . 和 -&gt; 的区别。 目前得到的结论是: 变量引用 . 直针引用 -&gt; 如下列程序: struct students{ char*name[10]; long number; char*address[100]; }Stu; //变量...

    这个问题以前没注意过,今天和同事讨论后,查询相关资料,想搞懂一个问题:

    关于结构体引用变量的符号  .   和   ->   的区别。

    目前得到的结论是:

    变量引用   .

    直针引用  ->

    如下列程序:

    struct students{
    char*name[10];
    long number;
    char*address[100];
    }Stu;
    //变量引用
    Stu student_1;
    student_1.name="张三";
    student_1.number=001;
    student_1.address="江苏无锡";
    //指针引用
    Stu* student_1;
    student_1->name="张三";
    student_1->number=001;

    student_1->address="江苏无锡";

    关于这个问题的错误之处,希望看到的提出来,大家互相学习,谢谢!!!

    展开全文
  • c语言结构体

    2014-06-03 18:26:23
    大一c语言课程之c语言结构体。详细讲解了结构体数据类型,结构体变量的应用结构体数据类型的定义及其变量的申明和引用
  • C语言结构体

    2020-02-22 09:29:20
    文章目录结构体1、什么是结构体2、声明结构体3、结构体变量的声明3.1、先声明结构体类型,再定义变量3.2、在声明结构体的同时定义变量3.3、直接定义结构体变量4、结构体变量的初始化5、结构体变量的引用6、结构体...

    结构体

    1、什么是结构体

    基本数据类型:int char float double short long unsigned (一个变量)

    数组:很多个变量 只能保存一种类型的数据

    结构体:也是一种数据类型,这种数据类型,是程序员自己定义。可以包含多种数据类型。

    2、声明结构体

    struct students ------------------->struct students 就是一种数据类型 int char float
    {char name[12]; ---------------->结构体的成员“;”结束
    ​  int  number;char sex[5];
    };-------------------------------->结构体以“;”结束
    

    struct students 就是一种数据类型 int char float

    Struct 定义结构体的关键字

    Students 结构体名 (自己命名)

    3、结构体变量的声明

    3.1、先声明结构体类型,再定义变量

    Int a;float b;
    
    struct students student1;
    

    结构体变量名也是自己命名的。

    3.2、在声明结构体的同时定义变量

    struct students  //int float
    {
      char name[12];
      int  number;
      char sex[5];
    }student2;
    

    3.3、直接定义结构体变量

    struct
    {
       char name[12];
       int  number;
       char sex[5];
    }student2;
    

    4、结构体变量的初始化

    在声明结构体变量的时候进行初始化

    struct students student2 = { "Liangren", 30, "男" }; 
    
    struct students
    {
       char  name[12];
       int   number;
       char  sex[5];
    }student1 = {"Meung",28,"男"};
    
    struct students
    {
      char   name[12];
      int    number;
      char   sex[5];
     struct data  birthday;
    }student1 = { "Meung", 28, "nan", 1995, 5, 20 },
    student2 = { "Hucheng", 20, "男", 2000, 6, 15 },
    student3 = { "Gragon", 15, "男", 2005, 8, 16 };
    

    在{}里面,数据初始化的顺序,应该跟结构体成员的顺序保持一致。

    5、结构体变量的引用

    对于结构体变量的引用不能采用整体。

    “.”---->成员运算符

    结构体变量.成员名

    printf("%s\n",student1.name);
    printf("%d\n", student1.number);
    printf("%s\n", student1.sex);
    

    注意:结构体同样可以包含另一个结构体类型

    struct data
    {
      int year;
      int month;
      int day;
    }; 
    
    struct students
    {
        char  name[12];
        int   number;
        char  sex[5];
       struct data  birthday;
    }student1 = { "Meung", 28, "nan", 1995, 5, 20 };
    
    int main()
    {    
         printf("%s\n",student1.name);
         printf("%d\n", student1.number);
         printf("%s\n", student1.sex);
         printf("%s\n", student1.birthday.year);
         return 0;
    }
    

    6、结构体数组

    结构体数组的定义和初始化

    跟结构体变量的这个定义是一样的。

    初始化也是一样。

    struct students
    {
       char  name[12];int  number;char  sex[5];struct data  birthday;
    }student[3] ={
        { "Meung", 28, "nan", 1995, 5, 20 },
        { "Hucheng", 20, "男", 2000, 6, 15 },{ "Gragon", 15, "男", 2005, 8, 16 } }; 
    
    struct students student[3]={ 
        { "Meung", 28, "nan", 1995, 5, 20 },{ "Hucheng", 20, "男", 2000, 6, 15 },{ "Gragon", 15, "男", 2005, 8, 16 } };
    

    引用:student[0].成员名。

    7、结构体数组的存放

    数组的存放都是连续的内存。一个结构一个结构的去存放。(注意)

    8、结构体和指针

    8.1指向结构体变量的指针。

    定义及初始化:

    struct students *p = &student1;
    struct students *p;
    p = &student1;
    

    引用:

    1用指针运算符去找到结构体变量,用成员运算符找到成员。(一定注意要加括号)

    (*p).birthday.year
    (*p).结构体成员 一定要加括号 “.”优先级最高
    

    2用指向运算符去访问成员。

     p->birthday.year
     printf("%d\n", (*p).birthday.year);printf("%s\n", (*p).sex);printf("%s\n", (*p).name);printf("%d\n", p->birthday.year);printf("%s\n", p->sex);
     printf("%s\n", p->name); 
    

    8.2 指向结构体数组的指针。

    定义:

    struct students *p = student;
    struct students *p; 
    p = student;
    p=student[0];
    

    引用:

    printf("%s\n", (p+1)->name); //whorld
    printf("%s\n", (*(p + 1)).name); //whorld
    
    展开全文
  • 一个指向变量的指针表示的是占...定义结构体变量的指针: //假设已有一个结构体名为Student struct Student *pStruct // 结构体类型 * 指针名; 通过指针来引用结构体中的成员,有三种方式 demo: 1 # i...
  • C语言结构体引用

    2020-09-04 09:54:37
    结构体、联合体、枚举 1、结构体 声明 struct Teacher ...声明+定义变量 ...使用结构体定义变量时,前面struct可写可不写 struct Teacher { int age; char isCool; }teacher; int _tma...
  • 结构体指针,可细分为指向结构体变量的指针和指向结构体数组的指针。html指向结构体变量的指针前面咱们经过“结构体变量名.成员名”的方式引用结构体变量中的成员,除了这种方法以外还能够使用指针。前面讲过,&...
  • C语言结构体类型定义和使用(一)

    万次阅读 多人点赞 2019-08-16 16:50:39
    0x00 前言 文章中的文字可能存在语法错误以及标点错误,请谅解; 如果在文章中发现代码错误或其它问题请告知,感谢! 0x01 结构体类型的定义 ...0x02 结构体类型变量的定义 0x03 结构体类型变量初始化和引用 ...
  • 1.概述:结构体变量的引用和赋值,有两种形式,一种是用符号”.”,一种是用符号”->”。结构体指针变量一般用”->”,非结构体指针变量,也就是一般结构体变量,一般用”.”。2.一般结构体变量struct{uint8_t...
  • C语言结构体指针

    2018-10-04 18:30:42
    结构体指针,可细分为指向结构体变量的指针和指向结构体数组的指针。 指向结构体变量的指针 前面我们通过“结构体变量名.成员名”的方式引用结构体变量中的成员,除了这种方法之外还可以使用指针。 前面讲过,&...
  • 五、结构体变量的引用 一、结构体类型定义 结构体是一种构造数据类型,可以把不同类型的数据整合在一起,每一个数据都称为该结构体类型的成员。使用结构体时,首先需要对结构体类型进行定义,结构体类型的定义如下...
  • C语言结构体专题

    2020-10-31 09:18:34
    结构体变量的引用 . 结构体变量的指针 -> 02、结构体做函数参数 结构体赋值编译器行为研究 结构体变量做函数参数 PK 结构体指针做函数参数 结构体做函数参数(//结构体赋值和实参形参赋值行为研究) 内存四区调用...
  • 例40:C语言实现通过指向结构体变量的指针变量变量输出结构体变量中的信息。 解题思路:在主函数中声明了struct student类型,然后定义了一个struct student类型的变量s_1,又定义了一个指针变量p,它指向一个struct...
  • c语言结构体学习整理(结构体初始化,结构体指针)

    千次阅读 多人点赞 2019-06-02 15:16:47
    目录 ...2、关于结构体变量的定义和引用 3、结构体的存储(内存对齐) 3.1结构体成员优化 4、结构体自引用 5、结构体的不完整声明 6、结构体传参 结论 7、结构体变量的初始化 7.1定义时...
  • 第九章 结构体与共用体 第九章 结构体与共用体 结构体 结构体变量的定义 结构体变量的引用 结构体变量的初始化 结构体数组 结构体和指针 共用体 9.1 结构体 结构体是一种构造数据类型 用途把不同类型的数据组合成一...
  • C语言结构体.ppt

    2011-04-09 08:55:49
    定义结构体类型 定义结构体类型变量 引用结构体变量结构体变量赋值 结构体的嵌套 结构体数组 指向结构体类型变量的指针
  • 结构体(struct)指是一种数据结构,是C语言中聚合数据类型(aggregate data type)...结构体定义、引用、初始化定义结构体为用户自定义数据类型,所以在定义结构体变量前需要先声明,一般形式为struct 结构体名{成...
  • return 0;

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 466
精华内容 186
关键字:

c语言结构体变量的引用

c语言 订阅