gpt4 book ai didi

c - 二维数组和指针

转载 作者:太空狗 更新时间:2023-10-29 17:10:14 25 4
gpt4 key购买 nike

我有以下代码片段:

char board[3][3] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'}
};

printf("address of board : %p\n", &board);
printf("address of board[0] : %p\n", &board[0]);

两个 printf() 语句都打印相同的值:0x0013ff67

  1. 据我所知,board(即)数组名称表示第一个子数组(即)board[0]

  2. 的地址
  3. board[0] 表示第一个数组中第一个元素的地址(即)board[0][0]

    <

为什么我在所有 printf() 语句中得到相同的地址?我希望两个语句的地址不同。

我对这些东西很陌生,不理解这种行为。请赐教。

最佳答案

虽然它是一个二维数组,但在内存中它会被表示为线性数组。因此,当您说 board[0][0] 时,它仍然指向该线性数组中的第一个元素,因此指向相同的内存地址。

关于c - 二维数组和指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8669773/

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