1. 程式人生 > >函數指針的返回值是指針數組,數組裏放的是int;函數指針的返回值是指針數組,數組裏放的是int指針

函數指針的返回值是指針數組,數組裏放的是int;函數指針的返回值是指針數組,數組裏放的是int指針

main 指針數組 malloc eof lib 參數 print oid 括號

函數指針的返回值是指針數組,數組裏放的是int

函數指針的返回值是指針數組,數組裏放的是int指針

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

void fun(int a){
  printf("fun:%d\n", a);
}

void fun1(void (*f)(int),int a){
  f(a);
}

int gun(int a){
  printf("gun:%d\n", a);
}

int gun1(int a, int(*f)(int)){
  printf("gun1:%d\n", a);
}
int (*hun(int
a))[]{ int (*p)[3] = (int(*)[3])malloc(sizeof(int[3]) * 2); (*p)[0] = a+1; //p[0][0] = a+1; p[0][1] = a+2; p[0][2] = a+3; (*(p+1))[0] = a+11; //下面寫法是錯誤的,p+1兩側必須加括號 //(*p+1)[0] = a+11; p[1][1] = a+22; (*(p+1))[2] = a+33; return p; } int *(*hun1(int a))[]{ int* (*p)[3] = (int*(*)[3])malloc(sizeof
(int*[3]) * 2); int *w1 = (int*)malloc(sizeof(int)); *w1 = 10+a; int *w2 = (int*)malloc(sizeof(int)); *w2 = 20+a; int *w3 = (int*)malloc(sizeof(int)); *w3 = 30+a; int *w4 = (int*)malloc(sizeof(int)); *w4 = 40+a; int *w5 = (int*)malloc(sizeof(int)); *w5 = 50+a; int *w6 = (int*)malloc(sizeof
(int)); *w6 = 60+a; (*p)[0] = w1; p[0][1] = w2; p[0][2] = w3; (*(p+1))[0] = w4; p[1][1] = w5; (*(p+1))[2] = w6; return p; } int main(){ //指針數組,數組裏是函數指針,指向的函數沒有返回值,1個int參數 void (*a[1])(int); a[0] = &fun; (*a[0])(1); //指針數組,數組裏是函數指針,指向的函數沒有返回值,2個參數。第一個參數是函數指針,指向的函數沒有返回值,1個int參數;第二個參數是int void (*b[1])(void(*)(int),int); b[0] = &fun1; (*b[0])(a[0],10); //指針數組,數組裏是函數指針,指向的函數的返回值是int,1個int參數 int (*c[1])(int); c[0] = &gun; (*c[0])(3); //指針數組,數組裏是函數指針,指向的函數的返回值是int,2個參數。第一個參數是int;第二個參數是函數指針,指向的函數的返回值是int,1個int參數。 int(*d[1])(int, int(*)(int)); d[0] = &gun1; (*d[0])(120,c[0]); //指針數組,數組裏是函數指針,指向的函數的返回值是數組指針,數組裏是int,1個int參數。 int (*(*e[1])(int))[]; e[0] = &hun; int (*p)[3] = (*e[0])(3); for(int i = 0; i < 2; ++i){ for(int j = 0; j < 3; ++j){ printf("%d ", p[i][j]); } printf("\n"); } free(p); //指針數組,數組裏是函數指針,指向的函數的返回值是數組指針,數組裏是int指針,1個int參數。 int *(*(*g[1])(int))[]; g[0] = &hun1; int* (*p1)[3] = (*g[0])(10); for(int i = 0; i < 2; ++i){ for(int j = 0; j < 3; ++j){ printf("%d ", *p1[i][j]); } printf("\n"); } free(p1); }

函數指針的返回值是指針數組,數組裏放的是int;函數指針的返回值是指針數組,數組裏放的是int指針