结构体定义以及初始化

本文通过一个C语言代码示例,展示了如何定义、初始化、修改和输出结构体。结构体包含整型id和两个字符型指针name、tel。代码首先初始化了一个结构体实例,然后修改了name字段,并最终输出了结构体的所有字段。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct AA
{
 int id;
 char* name;
 char* tel;
};
int main()
{
//初始化一个结构体
 struct AA a={1,"Police","110"};
 //修改一个结构体
 a.name="ambulance";
 //输出一个结构体
 printf("%d %s %s",a.id,a.name,a.tel);
 return 0;
在C语言中,结构体定义时进行初始化有以下几种常见方法: ### 顺序初始化 按照结构体成员的声明顺序依次进行初始化,使用大括号 `{}` 将初始化值括起来,各个值之间用逗号分隔。 ```c #include <stdio.h> // 定义结构体 struct Point { int x; int y; }; int main() { // 顺序初始化 struct Point p = {10, 20}; printf("x: %d, y: %d\n", p.x, p.y); return 0; } ``` ### 指定成员初始化 可以通过指定成员名来初始化结构体的特定成员,这种方式不依赖成员的声明顺序。 ```c #include <stdio.h> // 定义结构体 struct Student { char name[20]; int age; float score; }; int main() { // 指定成员初始化 struct Student s = {.age = 20, .score = 85.5, .name = "Alice"}; printf("Name: %s, Age: %d, Score: %.2f\n", s.name, s.age, s.score); return 0; } ``` ### 部分成员初始化 如果只初始化部分成员,未初始化的成员将被自动初始化为 0(对于数值类型)或空字符(对于字符数组)。 ```c #include <stdio.h> // 定义结构体 struct Rectangle { int length; int width; int area; }; int main() { // 部分成员初始化 struct Rectangle r = {.length = 5}; printf("Length: %d, Width: %d, Area: %d\n", r.length, r.width, r.area); return 0; } ``` ### 嵌套结构体初始化结构体中包含其他结构体成员时,可以使用嵌套的大括号进行初始化。 ```c #include <stdio.h> // 定义嵌套结构体 struct Date { int year; int month; int day; }; struct Employee { char name[20]; struct Date birthdate; }; int main() { // 嵌套结构体初始化 struct Employee e = {"Bob", {1990, 5, 15}}; printf("Name: %s, Birthdate: %d-%d-%d\n", e.name, e.birthdate.year, e.birthdate.month, e.birthdate.day); return 0; } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值