我试图制作一个tic tac toe程序,但我遇到了警告。我知道代码仍然编译,但我想知道为什么我有这个警告以及我可以做些什么来修复它。
当p = a时,我收到警告;
void clean(){
char a[N][N], *p;
p = a;
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++){
*p++ = '_';
}
}
display(a);
}
void display(char a[N][N]){
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++){
printf("%c ", a[i][j]);
}
printf("\n");
}
}
答案 0 :(得分:2)
您的clean
功能应为:
void clean(void){
char a[N][N];
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++){
a[i][j] = '_';
}
}
display(a);
}
使用p
指针绝对没有优势,除了你的代码不太可读。
答案 1 :(得分:-1)
a [] []是n char的数组,因此&amp; a是指向N,N个字符数组的指针。 这与指向单个char的指针不兼容,因为p是指向char的指针 Jst解释