首页 > 其他 > 详细

指针的陷阱

时间:2014-10-02 16:13:33      阅读:136      评论:0      收藏:0      [点我收藏+]

    你也许感觉对指针已经了如指掌了, 但是也可能还没注意到下面所述的一些简单的问题. 当然, 如果已经注意到这些陷阱了, 那就最好不过了.
    大家应该都知道, 通过指针是可以修改其指向的对象的值的, 请看下面的情况:
            int i = 10;
            int *p = &i;
            int *q = NULL;
            q = p;
            *q = 7;
            cout << i << endl;            // i == 7;
     
    以上是普通的情况. 那么请接着看下面的内容:
            char *p = NULL;
            char *q = NULL;
            
            p = "hello, c++ \n";
            q = p;
            
            q[1] = ‘E‘;                        // q所指向的内存现在存储的是字符串"hEllo, c++ \n"
            
   
        需要各位注意的是, 某些c编译器允许这种修改行为, 但ANSI C标准禁止对字符串子面值进行修改.    

 

指针的陷阱

原文:http://www.cnblogs.com/ApopToxin0723/p/4004133.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!