1. matriz de punteros puntero puntero de función 2. 3. 4. La matriz de punteros de función que apunta a la matriz de punteros a funciones

1. apreciará que el puntero
puede ser referido como un puntero a una matriz matriz de punteros
puntero de la lista figura
Aquí Insertar imagen Descripción
matriz de punteros en la Fig.
Aquí Insertar imagen Descripción
2 y se define en la comprensión del puntero de función
primer lugar, es un puntero a la dirección de la función.
Debe especificar el puntero de función que define un puntero de función y el valor de retorno de la función de lista de parámetros señaló. (Soportes esencial, para que coincida con el tipo)
3. entendido y matriz de punteros de función definida, mesa de transferencia
En primer lugar, es una matriz, los elementos de la matriz son una función de la dirección, es decir, la dirección de la función almacenado en la matriz
int ( pfun [2]) ( int, int) = {Add, Sub};
uso de punteros de función ---- tabla de transición, implementado por la transferencia de una simple tabla de calculadora
4. punteros comprensión y punteros de función definir una matriz de
punteros a funciones de matriz y el puntero puntos a un elemento de matriz de la matriz de punteros de función son
int (
(P *) [2]) (int, int) = & pfun;

char* test1(int a,int* b)
{
}
char* test1(int a,int* b)
{
}
int main()
{
  char* (*p1)(int,int*)=test1;`//函数指针
  char* (*p2[2])(int,int*)={test1,test2};//函数指针数组
  char*(*(*p3[2])(int,int*)=&p2; //指向函数指针数组的指针
}

5. Comprender el uso de la función de devolución de llamada de
la función de devolución de llamada es la función que se llama a través de un puntero de función
en la función de devolución de llamada lenguaje C
estructura de devolución de llamada compuesta principalmente de tres partes: la función principal, y la función se llama a la función llamada. C, la función llamada generalmente puntero de función (apuntando a la dirección de entrada de la función correspondiente) de la forma

//定义回调函数
void PrintfText() 
{
    printf("Hello World!\n");
}
//定义实现回调函数的"调用函数"
// 参数为函数指针,无参数返回void
void CallPrintfText(void (*callfuct)())
{
    callfuct();
}
//实现函数回调
int main(int argc,char* argv[])
{
    CallPrintfText(PrintfText);
    return 0;
}

6. Varios tipos de datos de los ejercicios de clasificación qsort función

void qsort(void *base, size num,size_t width,int(*cmp)(const void *e1,const void *e2))
//base:要排序的数组
//num:数组中的元素数目
//size_t width:宽度
//cmp:比较两个数组元素的比较函数

7. Función de imitar qsort para lograr una especie común de la burbuja

void bubble_t(int* arr,int sz)
{
    int i=0;
    for(i=0; i<sz-1; i++)
    {
       int j=0;
       for(j=0; j<sz-1-i; j++)
         { 
            if (arr[j]>arr[j+1])
            {
               int tmp=arr[j];
               arr[j]=arr[j+1];
               arr[j+1]=tmp;
             }
          }
     }
 }
void print_arr(int arr[],int sz)
{
    int i=0;
    for(i=0;i<sz;i++)
    {
        printf("%d ",arr[i]);
    }
    printf("\n");
 }
int main()
{
    int arr[]={9,8,7,6,5,4,3,2,1,0};
    int sz=sizeof(arr)/sizeof(arr[0]);
    bubble_sort(arr,sz);
    print_arr(arr,sz);
    return 0;
}
Publicado 60 artículos originales · ganado elogios 23 · vistas 3335

Supongo que te gusta

Origin blog.csdn.net/weixin_44945537/article/details/94362812
Recomendado
Clasificación