【发布时间】:2016-09-02 07:19:56
【问题描述】:
#include<stdio.h>
void display(int *q,int,int);
int main(){
int a[3][4]={
2,3,4,5,
5,7,6,8,
9,0,1,6
};
display(a,3,4);
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("%d",*(q+i*col+j));
}
printf("\n");
}
printf("\n");
}
为什么这段代码在 gcc 中显示警告“从不兼容的指针类型 display(a,3,4) 传递 'display' 的参数 1”?...无论如何都可以成功运行,但很想知道错误..如果有人可以告诉这个我会很感激..
【问题讨论】:
-
display(a,3,4)应该是display(&a[0][0],3,4)或display((int *)a,3,4)。 -
实际上我认为没有必要这样做,因为我将它传递给 *q...所以它应该完成...我认为....它仍然运行但显示警告内容