C语言之结构体
【摘要】 结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构体。在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体用关键字 struct来声明。
定义结构体类型变量
基本形式格式:
struct 结构体名{
成员表列;
} 变量表列;
123
具体有四...
结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,叫做结构体。在C语言中,结构体(struct)指的是一种数据结构,是C语言中聚合数据类型(aggregate data type)的一类。结构体用关键字 struct来声明。
定义结构体类型变量
基本形式格式:
struct 结构体名{
成员表列;
} 变量表列;
- 1
- 2
- 3
具体有四种方式 :
- 1、定义结构体的同时定义变量:
struct Student{ char name[10]; int age;
} stu;
- 1
- 2
- 3
- 4
- 2、先定义结构体,后再定义变量:
struct Student{ char name[10]; int age;
};
struct Student stu;
- 1
- 2
- 3
- 4
- 5
- 3、先定义结构体,再定义结构体别名,再用别名定义变量:
typedef struct { char name[10]; int age;
} Student;
Student stu;
- 1
- 2
- 3
- 4
- 5
- 4、匿名共用体,只使用一次
struct { char name[10]; int age;
} stu;
- 1
- 2
- 3
- 4
- 5
初始化成员列表
- 1、定义结构体的同时定义变量,并进行初始化变量:
struct Student{ char name[10]; int age;
} stu={"Tom",12};
- 1
- 2
- 3
- 4
- 2、先定义结构体,再定义变量,并初始化变量:
struct Student{ char name[10]; int age;
};
struct Student stu = {"Jhon",18};
- 1
- 2
- 3
- 4
- 5
- 3、先定义结构体,再定义结构体别名,再用别名定义变量,并初始化变量:
typedef struct { char name[10]; int age;
}Student;
Student stu = {"Jhon",19};
- 1
- 2
- 3
- 4
- 5
- 6
- 4、匿名结构体,只使用一次,初始化变量:
struct { char name[10]; int age;
}stu = {"Jho",16};
- 1
- 2
- 3
- 4
访问结构体变量
strcpy(stu.name,"Tom Jhon");
stu.age = 12;
- 1
- 2
完整例子
#include <stdio.h>
#include <string.h>
struct Student{ char name[10]; int age;
}stu;
int main(int argc,char* argv){ strcpy(stu.name,"Tom Jhon"); stu.age = 12; printf("name:%s\n",stu.name); printf("name 大小(单位:byte):%ld\n",sizeof(stu.name)); printf("age:%d\n",stu.age); printf("age大小(单位:byte):%ld\n",sizeof(stu.age)); printf("stu 大小(单位:byte):%ld\n",sizeof(stu)); return 0;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
运行结果:
~/Desktop/c$ gcc main.c -o main
~/Desktop/c$ ./main
name:Tom Jhon
name 大小(单位:byte):10
age:12
age大小(单位:byte):4
stu 大小(单位:byte):16
- 1
- 2
- 3
- 4
- 5
- 6
- 7
谢谢阅读。
文章来源: blog.csdn.net,作者:WongKyunban,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_40763897/article/details/103638733
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)