比较函数在 C 语言中用于比较值的相对大小关系,返回负数、0 或正数,分别表示第一个值小于、等于或大于第二个值。要编写比较函数,声明原型、比较值并返回相应的值;使用比较函数,调用 qsort() 函数,指定数组、元素数量、元素类型和比较函数。

C 语言比较函数
什么是比较函数?
在 C 语言中,比较函数用于比较两个值的大小关系。比较函数返回以下三个值之一:
- 负数:如果第一个值小于第二个值
- 0:如果两个值相等
- 正数:如果第一个值大于第二个值
如何编写比较函数?
立即学习“C语言免费学习笔记(深入)”;
要编写比较函数,请遵循以下步骤:
-
声明函数原型:
int compare(const void *a, const void *b);
-
const void *a和const void *b是指向要比较的值的指针。它们是用void *声明的,因为它们可以指向任何类型的值。
-
-
比较值:
在函数体内,比较两个值并返回适当的值:if (a < b) { return -1; } else if (a == b) { return 0; } else { return 1; }
使用比较函数:
比较函数用于对数组或结构中的元素进行排序。要使用比较函数,请调用 qsort() 函数:
qsort(array, num_elements, sizeof(element_type), compare);
-
array是要排序的数组。 -
num_elements是数组中的元素数量。 -
element_type是数组中元素的类型。 -
compare是要使用的比较函数。
示例:
下面是一个比较两个整数的示例比较函数:
int compare_int(const void *a, const void *b) {
int *num1 = (int *)a;
int *num2 = (int *)b;
return *num1 - *num2;
}











