在 C 語言中,數(shù)組的長度是固定的,不能直接刪除元素。但是可以通過移動元素的方法間接實現(xiàn)刪除元素的效果。以下是一種常見的方法:
以下是一個示例代碼,展示了如何從數(shù)組中刪除一個元素:
#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
函數(shù),該函數(shù)接收一個整型數(shù)組、數(shù)組的大小和要刪除元素的索引。函數(shù)首先判斷索引是否有效,然后從要刪除的元素的位置開始,將后面的元素向前移動一位。最后,將數(shù)組的長度減少 1。
在 main
函數(shù)中,我們定義了一個大小為 5 的數(shù)組 arr
,然后調(diào)用 deleteElement
函數(shù)刪除索引為 2 的元素。最后,我們輸出刪除元素后的數(shù)組內(nèi)容,以驗證代碼的正確性。
運行上述代碼,輸出結(jié)果如下:
Before deletion: 1 2 3 4 5
After deletion: 1 2 4 5