一个关于C语言数组的问题,输不出1的问题

来源:百度知道 编辑:UC知道 时间:2024/07/04 14:36:22
#include<stdio.h>
void main()
{
char board[3][3]={
{'1','2','3'},
{'4','5','6'},
{'7','8','9'}
};
int row=0;
int column=0;
int i=0;
int lenght=0;
lenght=(int)(sizeof(board));
for(i=0;i<lenght;i++)
{
row=i/3;
column=i%3;

printf("board[][]:%c\n",board[row][column]);
printf("board[]:%c\n",*board[row]+column);

printf("board:%c\n",*(*board+i));
}
printf("%d",lenght);
getch();
} 就是输不出1,但去掉其中的任意两个printf()有能输出1

可以输出啊,是不是输出大于一屏幕给冲走了?你把输出重定向到文本文件看看

这个程序的意图是什么,没看出来在做什么,另外,没有getch()这个函数,你是不是看错了,再运行一遍,看仔细了。

for(i=0;i<lenght;i++)
{
row=i/3;
column=i%3;

printf("board[][]:%c\n",board[row][column]);
printf("board[]:%c\n",*(board[row]+column)); //这一行错了

printf("board:%c\n",*(*board+i));
}
**********************************************************
你原来写的那个*board[row]+column意思是第row 行第一个元素的值加上column的值
但是你那样写输出结果碰巧正确。可以输出1的

二楼是对的。。。。。