首页 > 代码库 > 指针的陷阱
指针的陷阱
你也许感觉对指针已经了如指掌了, 但是也可能还没注意到下面所述的一些简单的问题. 当然, 如果已经注意到这些陷阱了, 那就最好不过了.
大家应该都知道, 通过指针是可以修改其指向的对象的值的, 请看下面的情况:
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标准禁止对字符串子面值进行修改.
指针的陷阱
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。