为了账号安全,请及时绑定邮箱和手机立即绑定

我的执行结果和GDB打印顺序怎么和老师的不一样?

#include <stdio.h>
int main()
{
    int a=3;
    int b=2;
    int array[3];
    array[0]=1;
    array[1]=10;
    array[2]=100;
    int *p=&a;
    int i;
    for(i=0;i<6;i++){
        printf("*p=%d\n",*p);
        p++;
    }
    printf("--------------------------------------\n");
    p=&a;
    for(i=0;i<6;i++){
        printf("p[%d]=%d\n",i,p[i]);
    }
}

http://img1.sycdn.imooc.com//59d896f50001c62f08000600.jpg

http://img1.sycdn.imooc.com//59d896f5000145bc08000600.jpg

http://img1.sycdn.imooc.com//59d896f6000197d708000600.jpg


正在回答

1 回答

http://img1.sycdn.imooc.com/59df14100001911213660730.jpg

我用vs2017调试的,老师讲的各个int变量的排列是跟编译器有关的。

只要知道,指针是地址就行了。想要能完全弄懂,可以看看汇编相关知识,会讲到小端,大端,原码补码等相关知识。

0 回复 有任何疑惑可以回复我~
#1

慕粉0827362688

gcc -v 显示自己的编译器版本
2017-10-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

我的执行结果和GDB打印顺序怎么和老师的不一样?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信