首页 > 解决方案 > 为什么 cout << *lkop[4] 的输出是 0?

问题描述

所以,我写了这段代码:

int arr[10] = {0,1,2,3,4,5,6,7,8,9};
 int (*lkop)[10] = &arr;
 cout << *lkop[4];

我期待一个 int 4 出现,但输出是 0;为什么会这样,我真的很困惑。有什么想法吗?提前谢谢你。

标签: c++

解决方案


运算符的[]优先级高于*运算符。

lkop[4]超出范围,因为arr, 其中lkop点 仅具有 的一个元素int[10]

要首先进行取消引用,您应该添加括号:cout << (*lkop)[4];.


推荐阅读