c语言 结构类型,C语言定义结构类型的几个方法

1、在外部声明一个新的结构类型,这种结构在任何函数内都可以使用。声明结构变量的时候需要带上struct+结构类名+变量名。

#include

struct mys

{

char *name;

int age;

char *gender;

};

int main(){

struct mys heihei;

heihei.name = "rainn";

heihei.age = 25;

heihei.gender = "man";

}

2、在函数内部声明一个新的结构类型

#include

int main(){

struct mys

{

char *name;

int age;

char *gender;

};

struct mys heihei;

heihei.name = "rainn";

heihei.age = 25;

heihei.gender = "man";

}

这种仅在该函数内部可以使用,声明结构变量同上。

3、声明结构类型的时候同时声明变量

#include

int main(){

struct mys

{

char *name;

int age;

char *gender;

} mys1;

struct {

char *job;

struct mys one;

} heihei;

heihei.job = "programmer";

heihei.one.name = "heihei";

heihei.one.age = 25;

heihei.one.gender = "man";

}

*4类型定义。

将结构类型定义在本地头文件中,然后引入之后直接使用,不需要关键字struct。在头文件test.h中定义

typedef struct {

char *name;

int age;

} mys;

然后在.c中引入。当然也可以直接在.c文件中写typedef。

#include

#include "test.h"

int main()

{

mys one;

one.name = (mys){.name = "heihei"};

one.age = 25;

}

结构变量初始化

#include

int main(){

struct mys

{

char *name;

int age;

char *gender;

} Tom;

struct {

char *job;

struct mys one;

} heihei, *p;

Tom = (struct mys){"Tom",18,"man"};

heihei.job = "programmer";

p = &heihei;

(*p).one = (struct mys){"heihei", 25};

p->one.gender = "man";

// p->one = (struct mys){.gender = "man"};

//----与上上行的初始化为全部成员初始化,此处若执行则除了gender其他为0/null

printf("%s\n", (*p).job);

printf("%s\n", p->one.name);

printf("%d\n", p->one.age);

printf("%s\n", p->one.gender);

}

由此看到结构体内部也是可以放结构体成员,还有->操作是可以由指针指向结构体。且与数组不同的是,结构体本身并不是指针,所以取结构体地址的时候需要加上&符号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值