C++中的指针与数组

    技术2022-07-11  109

     一些基本的概念及举例说明


    1. float(**def)[10]  def是一个二级指针,指向一个一维数组的针,这个一维数组的指针指向一个长度为10的数组     float ac[10][10];     float(*pc)[10] = &ac[1];  //指向二维数组的第二行      def = &pc;                //二级指针          float c[10];      float(*pc)[10] = &c;      //指向一维数组的指针     def = &pc;                //二级指针      2. double*(*gh)[10]   指向指针数组的指针,数组中的每个元素都是double*类型    double d[10];     double c[10];     double *e[10] = { c,d };     double*(*gh)[10] = &e ; 3. double(*f[10])();  f是一个指针函数的数组    double(*a)();     double (*b)();     double (*f[10])() = { a,b };     f[0] = a;      4. int*((*b)[10]);  和 double*(*gh)[10]含义相同,都是指向指针数组的二级指针 5. long(*fun)(int) ; 定义了一个入参为int出参为long的函数指针 6. int (*(*f)(int,int))(int)     f是一个函数指针,指向的函数有两个int参娄,并返回一个函数指针的函数, 7. int(*f[10])(float) 定义了一个有10个指针的数组,每个指会指向一个函数,函数入参为float,出参为int

     根据以上,二维数组的首地址本质是一个指向一维数组的指针 因此在作为函数参数时应以 int (*a)[10]的形式传参。

    Processed: 0.012, SQL: 9