c语言获取数组并求数组长度
时间: 2024-05-27 18:04:54 浏览: 139
以下是两种C语言获取数组长度的方法:
1.使用sizeof运算符
```c
int arr[] = {1, 2, 3, 4, 5};
int len = sizeof(arr) / sizeof(arr[0]);
printf("数组长度为:%d\n", len); // 输出:数组长度为:5
```
2.使用指针计算数组长度
```c
int arr[] = {1, 2, 3, 4, 5};
int *p = arr;
int len = 0;
while (*p++) {
len++;
}
printf("数组长度为:%d\n", len); // 输出:数组长度为:5
```
相关问题
c语言输入数组并求数组长度
以下是两种C语言输入数组并求数组长度的方法:
1.使用sizeof()函数获取数组长度
```c
#include <stdio.h>
int main() {
int nums[5];
int len = sizeof(nums) / sizeof(nums[0]);
printf("数组长度为:%d", len);
return 0;
}
```
输出结果为:数组长度为:5
2.使用strlen()函数获取字符数组长度
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[20];
printf("请输入一个字符串:");
scanf("%s", str);
int len = strlen(str);
printf("字符串长度为:%d", len);
return 0;
}
```
输出结果为:字符串长度为:输入字符串的长度
c语言获取数组的个数
在C语言中,如果你有一个动态分配的数组,比如通过`malloc()`函数创建的,通常你需要明确地记录数组的大小。由于C语言不像一些现代编程语言那样提供内置的方式来获取数组长度,你可以这样做:
1. 使用预处理器宏定义:在定义数组时,可以预先指定数组的最大长度,并将其作为宏定义,如 `#define ARRAY_SIZE(array) (sizeof(array)/sizeof(array[0]))`。然后,当你需要数组长度时,可以直接使用这个宏。
```c
int arr[10];
int length = ARRAY_SIZE(arr);
```
2. 如果你不确定数组的确切大小,但它是通过某个函数返回的,你可以传递数组地址和其元素类型的指针到该函数中计算长度。
```c
size_t get_array_length(int *arr) {
return (size_t)(arr - (int *)0) / sizeof(int); // size_t是为了防止溢出,假设arr是一个整型数组
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
size_t len = get_array_length(arr);
// 使用len
}
```
注意:上述方法适用于一维数组。对于二维或多维数组,可能需要更复杂的计算或者在定义时就明确指定维度。
阅读全文