70,037
社区成员
发帖
与我相关
我的任务
分享
...
int zippo[4][2]{(2,4),(6,8),(1,3),(5,7)}
问题一:输出: zippo[1][2]为啥等于3呢啊?
问题二:输出:**zippo 俩个* 为啥等于2呢
问题三:输出*(*(zippo+1)+2)这个为啥等于3
我调试跟踪看汇编来着,还是没有懂,能解释一下吗 谢谢大家了
#include<stdio.h>
int main(void)
{
int zippo[4][2]={(2,4),(6,8),(1,3),(5,7)};
for(int i = 0; i < 4; i++)
{
for (int j = 0; j < 2; j++)
{
printf("zippo[%d][%d] == %d\n",i,j, zippo[i][j]);
}
}
printf("**zippo==%d\n",**zippo);
printf("*(*(zippo+1) + 2)==%d\n",*(*(zippo+1) + 2));
return 0;
}

源码如下啊:
#include<stdio.h>
int main(void)
{
int zippo[4][2]= {(2,4),(6,8),(1,3),(5,7)};
输出zippo+1;zippo[0]+1;
*zippo +1
zippo[0][0]
*zippo[0]
zippo[1][2]
*((*zippo+1)+2))
}