读书人

C语言有关问题,谁帮小弟我看看下面警告

发布时间: 2012-06-05 13:54:06 作者: rapoo

C语言问题,哪位高手帮我看看下面警告问题,为什么会这样,谢谢。
warning C4047: 'function' : 'int ** ' differs in levels of indirection from 'int [3][3]'



int identity_matrix(int **matrix)
{
printf("%d ",matrix[1][1]);
return 1;

}

void main()
{
int matrix[3][3] = {
{1,0,0},
{0,1,0},
{0,0,1}
};

printf("%d\n",identity_matrix(matrix));
}

[解决办法]
将int identity_matrix(int **matrix)里面的 int **matrix 改成 int (*mattrix)[3]就好了。
就是函数的形式应该是这样的 int identity_matrix(int (*matrix)[3])。

[解决办法]
定义的是双重指针,传进去的是数组指针,前者指向指针,后者指向数组
[解决办法]
想知道为什么,求牛人解释!
[解决办法]
二维数组实际上以一维数组的方式存放的,一维数组存放一组指针,然后分别指向另一个一维数组
一个2*3的指针就必须要知道一维的大小才能寻址,直接传递到二维指针就丢失了这个信息

读书人网 >C语言

热点推荐