指针小结

来源:互联网 发布:金万维免费域名申请 编辑:程序博客网 时间:2024/05/01 14:14

1.多维数组

int array[2][3][4];//为2*3*4    //外面->里面    //外面2大个,中间3中个,里面4小个(两行三列四个一组)    int array[2][3][4] = {         {{1,2,3,4}, {5,6,7,8},{9,10,11,12}},        {{13,14,15,16},{17,18,19,20},{21,22,23,24}}     };


2.指针数组和数组指针

int* array[10];//指针数组,数组array里面存放10个整型的指针(int*)int (*array)[10];//array为数组的指针,此数组存放10个整型(int)int *(*array)[10];//array为数组指针,此数组存放10个整型的指针(int*)int *((*array)[10]);//array为数组指针,此数组存放10个整型的指针(int*)


3.函数指针和函数指针数组

int* function(int);//function为函数名,此函数拥有一个整型参数并返回一个整型指针int (*function)(int);//function为函数指针,此函数拥有一个整型参数并返回一个整型值int* (*function)(int);//function为函数指针,此函数拥有一个整型参数并返回一个整型指针int (*function[10])(int);//function为数组的指针,该数组存有10个函数的指针,此函数指针指向一个拥有一个整型参数并返回整型值的函数//在复杂声明/定义时,如:void (*array[10])(void(*)());/*void(*)()   是一个函数指针、该指针指向一个无参数,无返回值得函数array[10]   是一个函数指针数组*/使用时array[0]=foo;//赋值array[0](bar);//调用其中foo和bar定义如下void bar(){};void foo(void(*func)()){}


总结
对于指针的定义

type (*)(arg list);//定义函数指针type (*)[];//定义数组指针
0 0