我爱占星网 我爱占星网
首页
编程
java
php
前端
首页 编程 java php 前端

(*(a+i))[j]与*(a+i)[j]的不同

不懂为什么*(a+i)[j]转化为*(*(a+i+j))求解!

两个表达式都有一次解引用和一次数组,所以a至少为二级指针。
第一个表达式就是a[i][j],不解释
第二个表达式由于[]优先级高,解释为*((a+i)[j]),编译器解析为*(*(a+i+j)+0),即a[i+j][0]

int main(void)
{
int a[][] = { {1, 2}, {3, 4}, {5, 6} };
// a[2][0]
printf("%d\n", *(a + 1)[1]);
// a[1][1]
printf("%d\n", (*(a + 1))[1]);
}

运行一下,说不定你就懂了二

近期文章

  • 求1000以内水仙花数字
  • VS中C++报错【error LNK2005: _main 已经在 .obj 中定义】
  • window.showModalDialog改成window.open相关问题
  • Shiro中安全管理器的配置
  • VS219编译问题,编译后的dll使用异常
  • win10设置了防火墙策略,封禁了外网地址过一段时间之后出现无法识别网络的情况。
  • 求java程序,要求代码和运行结果
  • maven环境变量配置
  • 在注释下面idea回车以后自动锁进
  • CMD下运行命令可以BAT运行错误
  • VC++MFC对话框付值,有值传过来,但就不显示
  • vue将el-input使用v-for循环遍历内容到框内
  • python遇到的list index out of range问题
  • 求python程序代码和运行结果
  • python用pandas创建二维表格,列是乱序的,如何解决?
  • 点击新增按钮,出现问题
  • C# Socket发送接收int类型数据
  • moments.js格式问题。
  • Javafx Java swing
  • Linux逻辑卷管理器lvm

Copyright ©2022 我爱占星 All Rights Reserved.

浙ICP备2022030071号-1

部分图文来自网络,如有侵犯您的版权,请告诉我们删除

友情链接:代码精华