C++指针学习心得(二)
来源:互联网 发布:安利 网络用语 编辑:程序博客网 时间:2024/05/22 09:41
读《高质量C++编程指南》的时候,看到一个有趣的题目:
这样是可以的。认真分析原因,得知:*p的值是"abc";系统自动为常量"abc"分配了地址,所以指针p指向的是"abc"的地址,地址里存放的是常量"abc"。现在试图去更改地址中的常量,所以是非法的操作。编译器不会报错,但是运行会出错。
char *p = "abc";cout<<p[0]<<p[1]<<p[2]<<endl;//可以输出p[1] = "B";//不可以复制
不知道为什么不可以复制,于是写下了
*p = "aBc";//可以
这样是可以的。认真分析原因,得知:*p的值是"abc";系统自动为常量"abc"分配了地址,所以指针p指向的是"abc"的地址,地址里存放的是常量"abc"。现在试图去更改地址中的常量,所以是非法的操作。编译器不会报错,但是运行会出错。
而*p = "aBc";是把p指向了新的地址,而不是复制操作。所以是可行的。
- C++指针学习心得(二)
- C#.NET学习心得(二)
- 《C和指针》学习心得(第一章)
- 《More Effective C++》学习心得(二)
- 我的C语言学习心得(二)
- C学习心得二(printf用法)
- c语言函数指针学习心得
- C语言指针(二)
- c与指针(二)
- C/C++ 指针 (二)
- C和指针(二)
- 《c和指针》(二)
- 《c和指针》(二)
- C语言指针(二)
- C指针基础(二)
- C指针操作(二)
- C++primer 指针(二)
- 学习心得(二)
- 【百度地图API】如何判断点击的是地图还是覆盖物?
- Android - NDK
- mysql 查询及设置数据库编码
- 开源Android Library
- HGE读书笔记(一)--绘制,声音,和碰撞处理
- C++指针学习心得(二)
- 免费学习编程的10个好工具(1)
- fedora 设置无线网络共享
- JSTL标签库
- 免费学习编程的10个好工具(2)
- Android中的线程池与任务队列
- performSelectorOnMainThread 和detachNewThreadSelector区别.
- php使用ctags
- Oracle 10g ORA-12154: TNS: could not resolve the connect identifier specified 问题解决!