gpt4 book ai didi

c - 需要帮助来理解单行 C 代码输出

转载 作者:行者123 更新时间:2023-12-01 08:56:10 25 4
gpt4 key购买 nike

请考虑以下代码

#include<stdio.h>

int main()
{
int a[2][3][4] = { {1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 1, 2},
{2, 1, 4, 7, 6, 7, 8, 9, 0, 0, 0, 0} };
printf("%u, %u, %u, %u\n", a, *a, **a, ***a);
return 0;
}

如果我没记错的话 a 指向数组开始的位置。那么为什么 a ,*a ,**a 三个都给出相同的位置?

最佳答案

是的,这是正确的

与任何其他变量一样,指向指针的指针也是一个变量,但它保存的是变量的地址。该变量恰好是一个指针。

对该二维数组的引用将具有 (a*)* = a** 类型,因此是指向指针的指针。

旁注:-正如 Oli Charlesworth 评论的那样,您的代码正在调用未定义的行为,因为您正在使用 %u 来解释指针。

关于c - 需要帮助来理解单行 C 代码输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18815742/

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