c 语言怎么获取数组长度
时间: 2023-08-02 20:36:08 浏览: 105
在C语言中,获取数组的长度有两种方法:
1. 使用sizeof运算符获取数组长度,例如:
```
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(arr[0]);
printf("数组长度为:%d\n", len);
```
2. 如果数组作为函数参数传递,可以通过传递数组长度获取数组长度,例如:
```
void func(int arr[], int len) {
printf("数组长度为:%d\n", len);
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(arr[0]);
func(arr, len);
return 0;
}
```
这两种方法都可以获取数组的长度,但是第二种方法需要额外传递数组长度参数。
相关问题
c 语言 结构体数组
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 语言指针数组逆序显示
假设有一个指针数组`int* arr[N]`,其中每个指针指向一个整型数值。要求将这个指针数组逆序显示,可以使用以下代码实现:
```c
void reverse(int* arr[], int n) {
for(int i = 0; i < n/2; i++) {
int* temp = arr[i];
arr[i] = arr[n-i-1];
arr[n-i-1] = temp;
}
}
int main() {
int a = 1, b = 2, c = 3;
int* arr[3] = {&a, &b, &c};
reverse(arr, 3);
for(int i = 0; i < 3; i++) {
printf("%d ", *arr[i]);
}
return 0;
}
```
首先定义了一个`reverse`函数,接收一个指针数组和数组长度,通过循环交换数组中的指针,实现了逆序。然后在主函数中,定义了一个包含三个整型变量地址的指针数组,并将其传入`reverse`函数中,最后循环输出逆序后的数组内容。