Không hiểu 1 số hàm với hàm qsort

mình đang tìm hiểu về qsort thì ko hiểu cái hàm cmpfunc và cách nó trả về
const void là sao
hơn nữa khi nhập số vào thì nó cứ có số 25 chèn vào ?
ví dụ mình nhập : 5 2 3
thì kết quả cho ra là 5 25 3 ??
có ai hộ mình với

#include <stdio.h>
#include <stdlib.h>

int cmpfunc (const void * a, const void * b)
{
     return ( *(int*)a - *(int*)b );
}

int main()
{
    int a[3];
    scanf("%d %d %d", &a[1],&a[2],&a[3]);
    qsort(a, 3, sizeof(int), cmpfunc);
    printf("%d %d %d", a[1],a[2],a[3]);
    
    
    return 0;
    

}

Nếu bạn để chỉ số bắt đầu từ 1 thì phải khai báo a[4] chứ không phải là a[3].

bạn có thể giảng cho mình về hàm cmpfunc đc ko ạ ?
hay có cách nào ko sử dụng con trỏ không ?

So sánh giá trị của 2 phần tử trong dãy int a[].

Để giải thích 1 cách cụ thể thì mình thấy là hơi khó, vì mình không code con trỏ.

Bạn xem link này thử xem:

Chào sockyone!
Bạn cần tìm hiểu các các kiến thức sau:

  1. Bạn cần tìm hiểu void* là gì? (con trỏ void)
  2. Tìm hiều về hằng con trỏ(* const ) và con trỏ hằng(const *).
    Nếu bạn muốn học lập trình C/C++ cho nhúng thì mình khuyên bạn nên tìm hiểu sâu nếu muốn biết cho chơi thì thôi. Xin bạn dừng lại nó là 1 định nghĩa của sự nhức đầu! Nếu có gì sai mong mọi người thông cảm cho em!
1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?