c语言指针数组比较大小
时间: 2024-08-12 11:01:04 浏览: 137
数组指针和指针数组的区别
在 C 语言中,如果你想比较两个指针数组的大小,首先要明确的是,这里所说的“大小”通常是指数组的元素个数,而不是内存占用的空间大小。假设你有两个指针数组 `arr1` 和 `arr2`,它们都是指向同种类型的变量(比如 int 类型),你可以通过比较它们的首地址和数组长度来确定哪个数组更大。
如果你已经知道了每个数组的实际长度,可以这样做:
```c
int *arr1 = ...; // 第一个数组
int len1 = ...; // arr1 的元素个数
int *arr2 = ...; // 第二个数组
int len2 = ...; // arr2 的元素个数
if (len1 > len2) {
printf("arr1较大\n");
} else if (len1 < len2) {
printf("arr2较大\n");
} else {
printf("两个数组大小相等\n");
}
```
如果不知道具体的长度,你需要遍历数组来计算长度,这可能会变得复杂一些,并且不太常见,因为通常你会提前知道数组的长度。但是,如果你确实需要这么做,可以用类似下面的方式:
```c
int count_elements(int* arr, size_t max_size) {
int count = 0;
for (size_t i = 0; i < max_size && arr[i] != NULL; ++i) {
++count;
}
return count;
}
int *arr1 = ...;
int *arr2 = ...;
int len1 = count_elements(arr1, sizeof(arr1) / sizeof(*arr1));
int len2 = count_elements(arr2, sizeof(arr2) / sizeof(*arr2));
// 然后按照上面的方法比较 len1 和 len2
```
阅读全文