签到

06月21日
尚未签到

共有回帖数 0

    幻梦如戏

    等级:
    下面例题:
    #includestdio.h
    int *p;
    void s()
    {
    int n=25;
    p=&n;
    }
    void main()
    {
    s();
    printf("*p=%d:",*p);
    }
    按理说,应该会有错误才对,因为p指向的是n,而n在函数s()中,程序先调用s(),并创建n,并将p指向它,但是,当函数退出后,n就应该被删除了,所以p指向的地址已经不再存在了~~可是我用tc和vc++没有出错信息阿?!

    但是如果在c++中
    在s()函数最后加入打印出*P的话,那主函数打印出的*P就有问题了!!
    可是在tc中作如此修改也没有问题阿!
    这是怎么回事?
    应该在局部变量被删除的时候p指向的地址就没了才对啊!

    assiss兄弟,来吧!~
    我一边看书,一边等你回答!所以你就不要叫我看书了,呵呵~~

    楼主 2016-01-23 13:09 回复

共有回帖数 0
  • 回 帖
  • 表情 图片 视频
  • 发表

登录直线网账号

Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号 意见反馈 | 关于直线 | 版权声明 | 会员须知