定义结构体直接定义和用typedef两种方式有什么不同,举例说明

在C语言中,定义结构体有两种方式:直接定义和使用typedef关键字定义。这两种方式有以下不同点:

  1. 使用typedef关键字定义结构体可以给结构体类型起一个新的名称,使得在声明结构体变量时直接使用这个新的名称。而直接定义结构体则需要在声明结构体变量时使用struct关键字。

以下是一个使用直接定义和typedef定义方式的示例:

// 直接定义结构体
struct Book {
    char title[50];
    char author[50];
    int year;
};

// 使用typedef定义结构体
typedef struct {
    char title[50];
    char author[50];
    int year;
} BookType;
  1. 使用typedef定义结构体可以使得类型声明更加简洁,结构体的名称直接成为新的类型名,不再需要在声明结构体变量时加上struct关键字。而直接定义结构体则需要在声明结构体变量时加上struct关键字。

以下是使用typedef定义结构体的示例:

#include <stdio.h>

typedef struct {
    char name[20];
    int age;
} Person;

int main() {
    Person p; // 使用typedef定义的结构体,不需要struct关键字

    strcpy(p.name, "Tom");
    p.age = 25;

    printf("Name: %s\n", p.name);
    printf("Age: %d\n", p.age);

    return 0;
}
  1. typedef定义结构体可以在定义结构体的同时起一个新的类型名,而直接定义结构体则不具备这个特性。

以下是使用typedef定义结构体的示例:

#include <stdio.h>

typedef struct Point {
    int x;
    int y;
} Point;

int main() {
    Point p;

    p.x = 10;
    p.y = 20;

    printf("Coordinates: (%d, %d)\n", p.x, p.y);

    return 0;
}

4.接下来,我们可以直接声明Student类型的结构体变量,并进行使用,例如:

#include <stdio.h>
	struct student {
	    char name[20];
	    int age;
	    float score;
	};
int main() {
    // 创建一个结构体变量
    struct student s;

    // 对成员变量进行赋值
    strcpy(s.name, "Tom");
    s.age = 18;
    s.score = 91.5;

    // 输出结构体信息
    printf("Name: %s\n", s.name);
    printf("Age: %d\n", s.age);
    printf("Score: %.2f\n", s.score);

    return 0;
}

总之,typedef定义结构体可以简化结构体类型的使用,使得代码更加简洁和易读。直接定义结构体则需要使用struct关键字并且在声明结构体变量时加上struct关键字。选择使用哪种方式定义结构体取决于个人偏好和代码风格。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九层指针

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值