首页 > 解决方案 > 与c中的数组相关的指针问题的输出是什么,为什么?

问题描述

我无法预测这个问题的答案,也无法从逻辑上得到解决方案?虽然它可能有点简单,但作为一个初学者,我无法得到它?

int main()
{
    int array[5][5];
    printf("%d",( (array == *array) && (*array == array[0]) ));
    return 0;    
}

标签: arrayscpointers

解决方案


基本上它是一个简单的寻址问题。

  1. 的地址和array的地址一样*array吗?(是的,尽管它们的类型不同 - 不同的数组)
  2. 的地址是否与 的地址*array相同array[0]?(是的,它们是相同的——里面的第一个 int 数组array
  3. 现在1 && 1评估为 1(布尔条件评估为 1 或 0)

PS。正如@Lundin 所说,这个问题是无效的 C


推荐阅读