初识结构体及结构体指针

一、结构体

结构体可以让C语言创造出一个新的类型。

如下代码

#define  _CRT_SECURE_NO_WARNINGS
#include <stdio.h>


//创建一个学生的类型
struct stu//结构体可以让C语言创建出新的类型出来
{
    char name[20];
    int age;
    double score;
};
//创建一个书的类型
struct book
{
    char name[20];
    float price;
    char id[30];
};
int main()
{
    struct stu s { "awei", 21, 98.5 };//结构体的创建和初始化
    printf("%s %d %lf",s.name,s.age,s.score);//结构体变量.成员变量
    return 0;
}

上述代码中创建了一个学生类型和一个book类型,类型中有其希望输出的变量。在主函数中可以对结构体进行创建和初始化,并且输出结果如下:

初识结构体及结构体指针

 二、结构体指针及其第一种输出形式

结构体的创建和初始化也可以用指针的形式,如下代码

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>


//创建一个学生的类型

struct stu//结构体可以让C语言创建出新的类型出来

{

 char name[20];

 int age;

 double score;

};

//创建一个书的类型

struct book

{

 char name[20];

 float price;

 char id[30];

};

int main()

{

 struct stu s { "awei", 21, 98.5 };//结构体的创建和初始化

 printf("1:%s %d %lf ",s.name,s.age,s.score);//结构体变量.成员变量

 struct stu* ps = &s;

 printf("2:%s %d %lf ", (*ps).name, (*ps).age, (*ps).score);

 return 0;

}

上述代码中对结构体的创建和初始化运用的就是指针。上述代码运行输出结果如下:

初识结构体及结构体指针

 三、结构体指针及其第二种输出形式

结构体指针的输出形式不仅可以用这种形式

struct stu* ps = &s;

 printf("2:%s %d %lf ", (*ps).name, (*ps).age, (*ps).score);

也可以采取下种形式

printf("3:%s %d %lf ", ps->name, ps->age, ps->score);

如下代码

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

struct stu//结构体可以让C语言创建出新的类型出来

{

 char name[20];

 int age;

 double score;

};

//创建一个书的类型

struct book

{

 char name[20];

 float price;

 char id[30];

};

int main()

{

 struct stu s { "awei", 21, 98.5 };//结构体的创建和初始化

 printf("1:%s %d %lf ",s.name,s.age,s.score);//结构体变量.成员变量

 struct stu* ps = &s;

 printf("2:%s %d %lf ", (*ps).name, (*ps).age, (*ps).score);

 printf("3:%s %d %lf ", ps->name, ps->age, ps->score);

 return 0;

}

上述代码输出结果如下

初识结构体及结构体指针

上一篇:JS的第一天学习


下一篇:经典视频分享:Machine Learning: A New ICE (Identification, Control, Estimation) Age ? —— 自动控制和人工智能的结合前景