求大神解决下C语言问题

下面这段代码中的这行item=*(maze+(i*col_size+j));代码不懂啥意思。怎么就输出一个item就能输出全部行和列了。void print_maze(char *maze,int row_size,int col_size){ int i; int j; char item; for(i=0;i<row_size;i++){ for(j=0;j<col_size;j++){ item=*(maze+(i*col_size+j)); printf("%c ",item); } printf("\n"); printf("\n"); }}void main(void){ // 示例迷宫 char maze[9][9]={ {'#','#','#','#','#','#','#','#','#'}, {'#','@','#','#','@','@','@','@','#'}, {'#','@','@','@','@','#','#','#','#'}, {'#','@','#','#','@','@','@','@','#'}, {'#','@','@','@','#','#','#','#','#'}, {'#','#','#','@','@','@','@','@','#'}, {'#','#','#','#','#','@','#','@','#'}, {'#','#','#','#','#','@','#','@','#'}, {'#','#','#','#','#','#','#','#','#'},}; print_maze(&maze[0][0],9,9); }

#include <stdio.h>
void print_maze(char *maze,int row_size,int col_size)
{
int i; int j;
char item;
for(i=0;i<row_size;i++)
{
for(j=0;j<col_size;j++)
{
item=*(maze+(i*col_size+j)); //这是查二维数组 的代码 
//maze 数组的起始地址 
printf("%c ",item);
}
printf("\n");
printf("\n");
}
}
int main(void) // 示例迷宫
{
char maze[9][9]=
{
{'#','#','#','#','#','#','#','#','#'},
{'#','@','#','#','@','@','@','@','#'}, 
{'#','@','@','@','@','#','#','#','#'},
{'#','@','#','#','@','@','@','@','#'},
{'#','@','@','@','#','#','#','#','#'}, 
{'#','#','#','@','@','@','@','@','#'},
{'#','#','#','#','#','@','#','@','#'},
{'#','#','#','#','#','@','#','@','#'}, 
{'#','#','#','#','#','#','#','#','#'},
};
print_maze(&maze[0][0],9,9);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-12-22
因为这里的item是一个字符指针,随着二重循环的进行,它扫描整个二维数组,输出其中的每一个字符,所以,它能输出整个二维数组。
相似回答