在 C 语言中,数组的长度是固定的,不能直接删除元素。但是可以通过移动元素的方法间接实现删除元素的效果。以下是一种常见的方法:
以下是一个示例代码,展示了如何从数组中删除一个元素:
#include <stdio.h>
#define MAX_SIZE 100
void deleteElement(int arr[], int size, int index) {
if (index < 0 || index >= size) {
printf("Invalid index\n");
return;
}
for (int i = index; i < size - 1; i++) {
arr[i] = arr[i + 1];
}
size--;
}
int main() {
int arr[MAX_SIZE] = {1, 2, 3, 4, 5};
int size = 5;
int index = 2;
printf("Before deletion: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
deleteElement(arr, size, index);
size--;
printf("After deletion: ");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
在上述示例中,我们定义了一个 deleteElement
函数,该函数接收一个整型数组、数组的大小和要删除元素的索引。函数首先判断索引是否有效,然后从要删除的元素的位置开始,将后面的元素向前移动一位。最后,将数组的长度减少 1。
在 main
函数中,我们定义了一个大小为 5 的数组 arr
,然后调用 deleteElement
函数删除索引为 2 的元素。最后,我们输出删除元素后的数组内容,以验证代码的正确性。
运行上述代码,输出结果如下:
Before deletion: 1 2 3 4 5
After deletion: 1 2 4 5