【建站服务】阿勒泰淘宝装修/阿勒泰京东店铺设计/阿勒泰拼多多网店装修公司/阿勒泰企业网店开通申请-网店装修设计-域名申请
作者: 风兰 . 阅读量: 5 . 发表时间:2022-09-21 05:43:12
上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
阿勒泰淘宝装修/阿勒泰京东店铺设计/阿勒泰拼多多网店装修公司/阿勒泰企业网店开通申请-网店装修设计

结构体数组的初始化
与其它类型数组一样,对结构体数组可以初始化如:
struct student
{
int mum;
char name[20];
char sex;
int age;
float score;
char addr[30];
}stu[3] = {{10101,"Li Lin", 'M', 18, 87.5, "103 Beijing Road"},
{10101,"Li Lin", 'M', 18, 87.5, "103 Beijing Road"},
{10101,"Li Lin", 'M', 18, 87.5, "103 Beijing Road"}};
定义数组 stu 时,元素个数可以不指定,即写成以下形式:
stu[] = {{...},{...},{...}};
编译时,系统会根据给出初值的结构体常量的个数来确定数组元素的个数。
当然,数组的初始化也可以用以下形式:
struct student
{
int num;
...
};
struct student stu[] = {{...},{...},{...}};
即先声明结构体类型,然后定义数组为该结构体类型,在定义数组时初始化。
从以上可以看到,结构体数组初始化的一般形式是在定义数组的后面加上:
结构体数组应用举例
下面例子说明结构体数组的定义和引用。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct person
{
char name[20];
int count;
}leader[3] = {{"Li", 0},
{"Zhang", 0},
{"Fun", 0}};
void main()
{
int i, j;
char leader_name[20];
for(i = 1; i<= 10;i++)
{
scanf("%s", leader_name);
for(j=0;j<3;j++)
if(strcmp(leader_name, leader[j].name) == 0)
leader[j].count ++;
}
printf(" ");
for(i=0;i<3;i++)
printf("%5s: %d ", leader[i].name, leader[i].count);
system("pause");
}
运行结果如下:
LI
Li
Fun
Zhang
Zhang
Fun
Li
Fun
Zhang
Li
Li: 3
Zhang: 3
Fun: 3
更多内容参考:C 结构体详解
js
js
824***808@qq.com
参考地址
4年前 (2018-10-20)
qq105677765
105***765@qq.com
16
使用结构数组存储书名/作者,结构体指针访问成员时,也可以对指针解引用再访问,如:*struct_pointer.title;(上面范例)。
#include<stdio.h>
#include<string.h>
char * s_gets(char*st, int n);
#define MAXTITL 40
#define MAXAUTL 40
#define MAXBKS 100 // 书籍的最大数量
struct book { //简历 book 模板
char title[MAXTITL];
char author[MAXAUTL];
float value;
};
阿勒泰淘宝装修/阿勒泰京东店铺设计/阿勒泰拼多多网店装修公司/阿勒泰企业网店开通申请-网店装修设计
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站



分配单位的,如果当前的空间不足,则会存储到下一个分配单位中。
#include <stdio.h>typedef struct{ unsigned char a; unsigned int b; unsigned char c;} debug_size1_t;typedef struct{ unsigned char a; unsigned char b; unsigned int c;} debug_size2_t;int main(void){ printf("debug_size1_t size=%lu,debug_size2_t size=%lu ", sizeof(debug_size1_t), sizeof(debug_size2_t)); return 0;}编译执行输出结果:
结构体占用存储空间,以32位机为例
tianqixin
429***967@qq.com
1.debug_size1_t 存储空间分布为a(1byte)+空闲(3byte)+b(4byte)+c(1byte)+空闲(3byte)=12(byte)。
1.debug_size2_t 存储空间分布为a(1byte)+b(1byte)+空闲(2byte)+c(4byte)=8(byte)。
小羽
106***1689@qq.com
结构体数组:
#include <stdio.h>#include <string.h>#include <stdlib.h>#define MAXTITL 41#define MAXAUTL 31#define MAVXBKS 100char * s_gets(char * st, int n);struct book { char title[MAXTITL]; char author[MAXAUTL]; float value;};int main(){ struct book library[MAVXBKS]; //book类型的结构体数组 int i; int index; printf("请问你要录入多少本书的信息 "); do { scanf("%d", &index); } while (index > MAVXBKS); getchar(); for (i = 0; i < index; i++) { printf("请输入第%d本书的名称: ",i+1); s_gets(library[i].title, MAXTITL); printf("输入其作者的名字: "); s_gets(library[i].author, MAXAUTL); printf("请输入书本的价格: "); scanf("%f", &library[i].value); getchar(); } for (i = 0; i < index; i++) { printf("%d %s 是 %s 写的 定价为%f元 ", i,library[i].title, library[i].author, library[i].value); } system("pause"); return 0;}char * s_gets(char * st, int n){ char * ret_val; char * find; ret_val = fgets(st, n, stdin); if (ret_val) { find = strchr(st, ' '); //查找换行符 if (find) // 查找地址不为空 *find = ''; //在此处放入一个空字符 else while (getchar() != ' ') continue; //处理剩余字符 } return ret_val;}小羽
106***1689@qq.com
leesc
318***893@qq.com
可以在声明结构体时初始化结构体变量:
#include <stdio.h>int main(void){ struct Student { char name[50]; int gender; int age; } student2 = {"张三",0,30}; struct Student student1; printf("name: "); scanf("%s",student1.name); printf("gender: "); scanf("%d",&student1.gender); printf("age: "); scanf("%d",&student1.age); printf("student1 >>name = %s, gender = %d, age = %d ", student1.name, student1.gender, student1.age); printf("student2 >>name = %s, gender = %d, age = %d ", student2.name, student2.gender, student2.age);}leesc
318***893@qq.com
js
824***808@qq.com
参考地址
结构体数组
一个结构体变量中可以存放一组数据(如一个学生的学号,姓名,成绩等数据)。如果有10个学生的数据需要参加运算,显然应该用数组,这就是结构体数组。结构体数组与以前介绍过的数据值型数组不同之处在于每个数组元素都一个结构体类型的数据,它们分别包括各个成员(分量)项。
定义结构体数组
和定义结构体变量的方法相仿,只需说明其为数组即可。
struct student{ int num; char name[20]; char sex; int age; float score; char addr[30];};struct student stu[3];以上定义了一个数组 stu,其元素为 struct student 类型数据,数组有 3 个元素。也可以直接定义一个结构体数组。如:
struct student{ int num; ....}stu[3];或struct{ int num; ...}stu[3];结构体数组的初始化
与其它类型数组一样,对结构体数组可以初始化如:
struct student{ int mum; char name[20]; char sex; int age; float score; char addr[30];}stu[3] = {{10101,"Li Lin", 'M', 18, 87.5, "103 Beijing Road"}, {10101,"Li Lin", 'M', 18, 87.5, "103 Beijing Road"}, {10101,"Li Lin", 'M', 18, 87.5, "103 Beijing Road"}};定义数组 stu 时,元素个数可以不指定,即写成以下形式:
stu[] = {{...},{...},{...}};