发表日期: 2022-09-01 14:37:39 浏览次数:73
上往建站提供网站建设,网站推广,网店设计,网站建设,企业网站,网站制作,网页设计,网站建设,企业网站制作,网页制作 高端定制网站建设,H5页面设计开发,微网站,微信运营,移动端设计开发,手机端网站,小程序,致力于苏州企业网站建设与公司网站制作,全国用户超10万,10余年的网站开发和建站经验,主营:网站建设、网络推广、微信公众号代运营、商城小程序开发定制、网店设计等业务,专业团队服务,效果好。。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
图木舒克公众号代运营公司
当上面的代码被编译和执行时,它会产生下列结果:
Book title : C ProgrammingBook author : Nuha AliBook subject : C Programming TutorialBook book_id : 6495407Book title : Telecom BillingBook author : Zara AliBook subject : Telecom Billing TutorialBook book_id : 6495700
您可以定义指向结构的指针,方式与定义指向其他类型变量的指针相似,如下所示:
struct Books *struct_pointer;
现在,您可以在上述定义的指针变量中存储结构变量的地址。为了查找结构变量的地址,请把 & 运算符放在结构名称的前面,如下所示:
struct_pointer = &Book1;
为了使用指向该结构的指针访问结构的成员,您必须使用 -> 运算符,如下所示:
struct_pointer->title;
让我们使用结构指针来重写上面的实例,这将有助于您理解结构指针的概念:
当上面的代码被编译和执行时,它会产生下列结果:
Book title : C ProgrammingBook author : Nuha AliBook subject : C Programming TutorialBook book_id : 6495407Book title : Telecom BillingBook author : Zara AliBook subject : Telecom Billing TutorialBook book_id : 6495700
分配单位的,如果当前的空间不足,则会存储到下一个分配单位中。
#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;
}
编译执行输出结果:
debug_size1_t size=12,debug_size2_t size=8
结构体占用存储空间,以32位机为例
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)。
tianqixin
tianqixin
429***967@qq.com
5年前 (2017-03-27)
小羽
106***1689@qq.com
56
结构体数组:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAXTITL 41
#define MAXAUTL 31
#define MAVXBKS 100
char * 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
5年前 (2018-01-31)
leesc
318***893@qq.com
19
可以在声明结构体时初始化结构体变量:
#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
leesc
318***893@qq.com
4年前 (2018-08-26)
js
824***808@qq.com
参考地址
42
结构体数组
一个结构体变量中可以存放一组数据(如一个学生的学号,姓名,成绩等数据)。如果有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[] = {{...},{...},{...}};
上往建站提供微信小程序+公众号商城+企业网站建设一站式微信网站商城营销系统,微信小程序是一种依附于微信体内即点即用,无需下载安装即可使用的轻应用,它开启了移动端“触手可及”的梦想,致力于苏州企业网站建设与公司网站制作,全国用户超10万,10余年的网站开发和建站经验,主营:网站建设、微信公众号代运营、商城小程序开发定制、网店设计等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
备案号: 苏ICP备2021016738号-6
CopyRight © 2021 上往建站 All Right Reserved 未经许可不得复制转载
24小时服务热线:400-111-6878 E-MAIL:1120768800@qq.com QQ:1120768800
网址: https://www.768800.club 网站建设:上往建站
关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|
企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|
欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系
全国服务热线:400-111-6878