c++ - 为什么 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;为什么会这样,我真的很困惑。有什么想法吗?提前谢谢你。
解决方案
运算符的[]
优先级高于*
运算符。
lkop[4]
超出范围,因为arr
, 其中lkop
点 仅具有 的一个元素int[10]
。
要首先进行取消引用,您应该添加括号:cout << (*lkop)[4];
.
推荐阅读
- reactjs - 在反应中访问复选框的简单方法。我有超过 20 个复选框
- angular - Leaflet + Ionic5 / Angular - 映射不良渲染 -
- ios - AVFragmentedAssetMinder 不能在 iPhone 设备上运行,但可以在模拟器上运行
- java - XMLEventWriter 抛出 javax.xml.stream.XMLStreamException: No open start element,当尝试写入结束元素时,即使打开
- xslt - 选择表亲 - 即前面和前面的兄弟姐妹的问题
- ruby-on-rails - 无法提交由 Rails Turbo Frame 响应绘制的表单
- tailwind-css - 如何在 Tailwind css 中对齐文本
- firefox - Blazor Web 程序集:可下载字体:glyf:字形 1258 中的复合点数超过 maxp maxCompositePoints
- javascript - 在 JavaScript 中更改背景图像不起作用
- python - 只能将 str (不是“元组”)连接到 str