c 语言 结构体数组
时间: 2023-11-24 21:49:01 浏览: 54
C语言中的结构体数组是一种将多个结构体对象存储在一个数组中的数据类型。结构体数组的定义和初始化与普通数组类似,只是数组元素的类型是结构体类型。结构体数组可以用于存储和处理多个具有相同属性的结构体对象,例如通讯录、学生信息等。
结构体数组的定义格式为:struct 结构体名 数组名[数组长度];
结构体数组的初始化方式与普通数组类似,可以使用大括号{}来初始化每个结构体元素,也可以使用逐个赋值的方式进行初始化。
例如,定义一个存储学生信息的结构体数组可以这样写:
struct Student {
char name[20];
int age;
float score;
};
struct Student stuArray = {{"Tom", 18, 90.5}, {"Jerry", 19, 88.5}, {"Lucy", 20, 95.0}};
这样就定义了一个包含3个学生信息的结构体数组,每个学生信息包括姓名、年龄和成绩。
相关问题
c 语言查询水果价格
在C语言中查询水果价格,你可以使用数组和结构体来实现。首先,你可以创建一个结构体来表示水果的信息,包括名称和价格。然后,你可以创建一个数组,用来存储多个水果的信息。接下来,你可以编写一个函数,输入水果名称来查询对应的价格。
下面是一个简单的示例代码:
```c
#includestdio.h>
#include <string.h>
// 定义水果结构体
struct Fruit {
char name[20];
float price;
};
// 查询水果价格的函数
float queryFruitPrice(struct Fruit fruits[], int numFruits, char name[]) {
for (int i = 0; i < numFruits; i++) {
if (strcmp(fruits[i].name, name) == 0) {
return fruits[i].price;
}
}
return -1; // 返回-1表示未找到对应的水果
}
int main() {
// 创建水果数组并初始化
struct Fruit fruits[3] = {
{"apple", 2.5},
{"banana", 1.8},
{"orange", 3.2}
};
// 查询水果价格
char fruitName[20];
printf("请输入要查询的水果名称:");
scanf("%s", fruitName);
float price = queryFruitPrice(fruits, 3, fruitName);
if (price ! -1) {
printf("%s的价格为%.2f元\n", fruitName, price);
} else {
printf("未找到%s的价格信息\n", fruitName);
}
return 0;
}
```
你可以根据实际需求修改结构体和数组的大小,并添加更多的水果信息。同时,你也可以根据需要扩展查询功能,比如按照价格范围查询等。
c 语言 sizeof用法
在C语言中,sizeof是一个操作符,用于计算数据类型或变量的大小(以字节为单位)。它可以用于任何数据类型,包括基本数据类型(如int,float等)和用户定义的数据类型(如结构体,联合体等)。
以下是一些使用sizeof操作符的示例:
1. 计算int类型的大小:
```c
int a;
printf("Size of int: %zu bytes\n", sizeof(a)); // 输出:Size of int: 4 bytes
```
2. 计算数组的大小:
```c
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
printf("Size of array: %d\n", size); // 输出:Size of array: 5
```
3. 计算结构体的大小:
```c
struct Person {
char name[50];
int age;
float height;
};
struct Person p;
printf("Size of struct: %zu bytes\n", sizeof(p)); // 输出:Size of struct: 56 bytes
```
需要注意的是,sizeof操作符返回的是一个size_t类型的值,这是一个无符号整数类型,通常是unsigned int或unsigned long类型。因此,在使用printf函数输出sizeof的结果时,需要使用%zu格式化符号。