【发布时间】:2014-07-29 16:40:25
【问题描述】:
下面是我的代码,其中我将名为 a 的数组传递给仅显示数组的显示函数。
我在此声明 printf("Arr[%d][%d] is %d\n",i,j,*(*(q+i)+j)); 上收到 invalid type argument of type unary * 错误
但是,注释代码会正确打印值。你能解释一下我做错了什么吗?我是 C 的新手,如果这是一个愚蠢的错误/错误,请原谅我。
#include <stdio.h>
void display(int *, int, int);
int main()
{
int a[3][4] = {
{1,2,3,4},
{5,6,7,8},
{9,10,11,12}
};
display(a,3,4);
/*
int i,j;
for(i=0; i<3; i++)
{
for(j=0; j<4; j++)
printf("Arr[%d][%d] is %d\n",i,j,*(*(a+i)+j));
}
*/
return 0;
}
void display(int *q, int row, int col)
{
int i,j;
for(i=0; i<row; i++)
{
for(j=0; j<col; j++)
printf("Arr[%d][%d] is %d\n",i,j,*(*(q+i)+j));
}
}
【问题讨论】:
标签: c arrays function pointers multidimensional-array