2024年6月11日发(作者:)

c语言指针数组经典题目详解

指针数组是一个数组,其元素都是指针。C语言中,指针数组

经常用于存储一组字符串或一组指向不同类型对象的指针。

下面是一些经典的题目,对指针数组进行详细解析。

题目1:将一个字符串数组按字典排序。

解析:首先,我们声明一个指向字符串的指针数组,将字符串

数组的每个元素赋值给指针数组的对应元素。然后使用冒泡排

序法对指针数组进行排序,最后按照排序后的顺序打印指针数

组元素所指向的字符串。

```c

#include

#include

#define MAX_LENGTH 100

#define MAX_NUM 10

void bubbleSort(char* arr[], int size) {

for (int i = 0; i < size - 1; i++) {

for (int j = 0; j < size - 1 - i; j++) {

if (strcmp(arr[j], arr[j+1]) > 0) {

char* temp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = temp;

}

}

}

}

int main() {

char* strings[MAX_NUM] = {"dog", "cat", "apple", "banana",

"elephant", "fish", "goat", "zebra", "horse", "tiger"};

int size = sizeof(strings) / sizeof(strings[0]);

bubbleSort(strings, size);

for (int i = 0; i < size; i++) {

printf("%sn", strings[i]);

}

return 0;

}

```

题目2:将一个整数数组按升序排序。

解析:这道题类似于题目1,只不过其中的元素类型是int而

不是char*。

```c

#include

#define MAX_NUM 10

void bubbleSort(int* arr, int size) {

for (int i = 0; i < size - 1; i++) {