指针函数本质是一个函数,通常指返回指针类型的函数,其返回值类型为某一类型的指针。
实例:
#include <stdio.h>
int* sort(int arr[],int size)
{
int temp,len = size;
//冒泡排序
for (int i = 0; i < len - 1; i++)
{
for (int j = 0; j < len - 1 - i; j++)
{
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
int main()
{
int arr[] = {23, 11, 12, 9, 8};
int* ptr = sort(arr,5);
for (int i = 0; i < 5;i++)
{
printf("%d ",*(ptr+i));
}
return 0;
}
函数指针是指向函数的指针变量。 在C语言中,函数指针允许动态选择要调用的函数,通常用于实现回调函数。
实例:
#include <stdio.h>
int* sort(int arr[],int size)
{
int temp,len = size;
for (int i = 0; i < len - 1; i++)
{
for (int j = 0; j < len - 1 - i; j++)
{
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
int main()
{
int arr[] = {23, 11, 12, 9, 8};
//定义函数指针
int *(*fn)(int [],int);
fn = sort; //初始化
int *ptr = fn(arr, 5);
for (int i = 0; i < 5;i++)
{
printf("%d ",*(ptr+i));
}
return 0;
}