gpt4 book ai didi

C - 如何打印二维数组中指针[0][0]的值

转载 作者:行者123 更新时间:2023-11-30 17:03:15 25 4
gpt4 key购买 nike

我想打印这样的板:enter image description here

在给定的代码中,我有这些值(不可更改的代码):

#ifndef BOARD_H
#define BOARD_H

#define BOARD_WIDTH 10
#define BOARD_HEIGHT 10

typedef enum cell
{
EMPTY, //0
BLOCKED, //1
PLAYER //2
} Cell;

#define EMPTY_OUTPUT " "

Cell BOARD_1[BOARD_HEIGHT][BOARD_WIDTH];
Cell BOARD_2[BOARD_HEIGHT][BOARD_WIDTH];

void initialiseBoard(Cell board[BOARD_HEIGHT][BOARD_WIDTH]);
void displayBoard(Cell board[BOARD_HEIGHT][BOARD_WIDTH]);

我尝试以多种方式编写initialiseBoard(),例如:

void initialiseBoard(Cell board[BOARD_HEIGHT][BOARD_WIDTH])
{
int i, j;
int *temp = NULL;

for ( i = 0; i < 10; i++)
for (j = 0; j < 10; j++)
board[i][j] = EMPTY;
}

void initialiseBoard(Cell board[BOARD_HEIGHT][BOARD_WIDTH])
{
int i, j;
int *temp = NULL;

for ( i = 0; i < 10; i++)
for (j = 0; j < 10; j++)
{
if (i == 0 && j == 0)
{
*temp = EMPTY;
board[0][0] = temp;
}
else
board[i][j] = EMPTY;
}
}

因为我知道板中[0][0]处的第一个单元格是一个指针,所以我尝试了很多方法来获取它的引用值,但它总是返回一个地址。请查看下面的代码并建议我一种方法。非常感谢!

void displayBoard(Cell board[BOARD_HEIGHT][BOARD_WIDTH])
{
int i, j;
for (i = 0; i <= 10; i++)
{
if (i == 0)
{
printf("\t|%s|", EMPTY_OUTPUT);
for (j = 0; j < 10; j++)
printf("%d|", j);
printf("\n");
}
else
{
for (j = 0; j <= 10; j++)
{
if (j == 0)
printf("\t|%d|", i - 1);
else
{
char* c;

/*unsigned *p = &board[0][0];

if (i == 1 && j == 1)
c = (*p == EMPTY) ? EMPTY_OUTPUT : "?";*/

if (i == 1 && j == 1)
c = (board[0][0] == EMPTY) ? EMPTY_OUTPUT : "?";
else
c = (board[i - 1][j - 1] == EMPTY) ? EMPTY_OUTPUT : "?";
printf("%s|", c);
}
}
printf("\n");
}
}
printf("\n%d\n", board[0][0]);
}

当我运行 displayBoard() 时:enter image description here

在 [0][0] 处,它始终返回一个地址。

最佳答案

board[0][0] 只是二维数组的基地址它正在打印二维数组的基地址,如果您想打印地址处的值,那么您应该使用 '*' 它显示您的情况下地址处的值,您应该使用 *( (板+0)+0)您可以尝试一下,如果有任何问题请告诉我:)

关于C - 如何打印二维数组中指针[0][0]的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36235041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com