函数以“int x [] [n]”作为参数

时间:2013-11-28 13:55:57

标签: c arrays pointers

以这种方式定义函数时:

void someFunction(int x[][n]){
   //Function instruction
}

究竟是什么是x对象:

它是一个指向未定义整数数组的n个指针的数组吗?

使用指针语法的同义定义是什么。

程序如何在内存中分配x对象。

2 个答案:

答案 0 :(得分:2)

将函数定义为

void someFunction(int x[][n]) { ... }

copiler将其解释为

void someFunction(int (*x)[n]) { ... }  
  

它是一个指向未定义数量的整数数组的n个指针的数组吗?

没有。 x是指向n整数数组的指针。

  

使用指针语法的同义定义是什么。

void someFunction(int (*x)[n]) { ... }

答案 1 :(得分:0)

它指向一个未指定大小的内存块,它可以对n进行整除。

索引为x[i][j] == *((int*)x + i*n + j)

形式

同义词。这不是众所周知的,如下:

void someFunction(int (*x)[n]){
   //Function instruction
}

它与指向内存块的指针数组不同,采用int** x形式。