char * psz="abc";
psz[0]='d';
这段程序为什么会有错,详细解释下!
psz[0]='d';
这段程序为什么会有错,详细解释下!
解决方案 »
- 用mfc单文档结构 view类下添加成员变量CEdit 当setWindowText()时为什么它的成员函数m_hWnd是空值
- 经过实践,对《在COM本质论》的Apartment时疑问
- CRichEditCtrl控件为何不响应鼠标右击消息?在线等!
- 初来乍到,希望大家多多帮忙呀!lib中的函数如何调用?
- 在线讨论: 如何调用WDM驱动程序进行硬件操作!!
- 请问有谁知道“windows优化大师”的界面是怎么做的啊???
- 谁知道微软最近公布的(大约272个API函数的文档和Demo)在那儿可以买到
- 得到了另一个程序的窗口句柄,怎样知道那个窗口还存不存在?
- xxxxx
- 送分行动:打印的简单问题
- vc.net proc*C问题
- 关于com组件无法加载的问题
=====
这个是常量,无法改写的。
常量字符串,在内存中分配在静态存储区,不允许用户修改。C/C++中内存区域划分大总结
http://sunjd2001.blog.163.com/blog/static/111294452009923105224826/
"abc" 为字符串常量,有地址,但地址在内存中分配在静态存储区,假设为0x0042601c;
char * psz="abc" 的意思是将"abc" 的存储位置首地址 即0x0042601c 分配给psz;该地址字符串为只读常量 只能读取 不能修改
所以一下语句char a =psz[0]; //a='a'; 不会出错但赋值语句
psz[0]='a'; //出错 只读常量 无法赋值