C 语⾔结构体的创建,使⽤与修改
C语⾔的结构体相当于⼀个对象,⼀个对象可以有很多种属性。
结构体的创建
在mian函数体外利⽤struct关键字进⾏创建,这⾥我创建了⼀个书的结构体,⾥⾯有名字(字符串类型)跟价格(短整型)两个属性。结构体具体化
在main函数内部进⾏结构体具体化。运⽤
struct关键字 结构体名字 具体化结构体名字* = {值}
格式进⾏赋值这⾥随便写了两本书,此处书的名字字符串类型⽤引号
结构体调⽤
有三种⽅法。
⽅式⼀:“结构体名.属性名”
⽅式⼆:利⽤指针
第⼀步:这⾥⽤变量pb(指针变量)来保存结构体b1的地址
第⼆步:“(*指针变量).属性值”
⽅式三:“结构体名->属性名”
属性值的更改
这⾥书的价格是变量,变量是可以直接赋值进⾏修改,⽤
"结构体名.属性名 = 属性值"如下:
⽽结构体书名name本质上是⼀个数组名,这⾥要进⾏修改必须得⽤strcpy(string copy即字符串拷贝),strcpy有两个参数(结构体.属性名,修改值),这⾥是⽤修改值去赋值于结构体.属性名 如下:struct Book { char name [20]; short price ;}; //此处分号不可缺少,代表结构体的结束,
1
2
3
4
5 struct Book b1 = { "C 语⾔", 6
6 }; struct Book b2 = { "C++", 55 };
1
2printf ("书名:%s\n", b1.name );printf ("价格: %d\n", b1.price );printf ("书名:%s\n", b2.name );printf ("价格: %d\n", b2.price );
1
2
3
4struct Book * pb = &b1;
1printf ("%s\n", (*pb ).name ); //打印书名printf ("%d\n", (*pb ).price ); //打印价格
1
2printf ("%s\n", pb ->name ); //打印书名printf ("%d\n", pb ->price ); //打印价格
1
2b1.price = 10;
1
这样就可以修改数组name的值了,但运⽤strcpy得引⼊string.h头⽂件。如下:
完整代码:strcpy (b1.name , "ptthon");
1#include <string.h>
1#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include <string.h>struct Book { char name [20]; short price };int main (){ struct Book b1 = { "C 语⾔", 66 }; struct Book b2 = { "C++", 55 }; struct Book * pb = &b1; //printf("%d\n", pb); //打印b1的地址 b1.price = 10; strcpy (b1.name , "ptthon"); //⽅法⼀: printf ("书名:%s\n", b1.name ); printf ("价格: %d\n", b1.price ); printf ("书名:%s\n", b2.name ); printf ("价格: %d\n", b2.price ); //⽅法⼆: printf ("%s\n", pb ->name ); //打印书名 printf ("%d\n", pb ->price ); //打印价格 //⽅法三: printf ("%s\n", (*pb ).name ); //打印书名 printf ("%d\n", (*pb ).price ); //打印价格 return 0;}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21c语言struct头文件
22
23
24
25
26
27
28
29
30
31
32
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论