函数的形参与实参(二维数组)

int a [][2]={1,2,3,4}

其中a 既不是 int * ,也不是 int **, 也不是 int(*)[2] , 而是 int [][], 类型。

int ** 指指向指针的指针。

int (*)[2] 指指向数组的指针,数字2 ,代表了每行的步长。这个数组中存储的是原数组每行的首元素的地址(我猜的)。

对于fun(a) , 如果函数的形参为 fun(int b [][2]), 这是默认的。如果函数的形参为 fun(int (*b)[2]), 那么 a 的类型会默认转化为

int(*b[2]), 这样也不会出错。

所以在传入函数的实参时,只需传入数组名就行。

疑问:数组a 中, 名字a 是一个指针,它怎么就成了int 类型?

猜你喜欢

转载自www.cnblogs.com/zijidefengge/p/12641220.html
今日推荐