码迷,mamicode.com
首页 > 其他好文 > 详细

指针的陷阱

时间:2014-10-02 18:21:13      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:ar   sp   问题   c   amp   r   c++   bs   har   

    你也许感觉对指针已经了如指掌了, 但是也可能还没注意到下面所述的一些简单的问题. 当然, 如果已经注意到这些陷阱了, 那就最好不过了.
    大家应该都知道, 通过指针是可以修改其指向的对象的值的, 请看下面的情况:
            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标准禁止对字符串子面值进行修改.    

 

指针的陷阱

标签:ar   sp   问题   c   amp   r   c++   bs   har   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!