首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C的字符串有关问题

2013-06-25 
C的字符串问题本帖最后由 mysticality 于 2013-05-04 10:01:47 编辑为什么打印的内容和预期不符呢?#includ

C的字符串问题
本帖最后由 mysticality 于 2013-05-04 10:01:47 编辑
为什么打印的内容和预期不符呢?


#include <iostream>
using namespace std;

int main() {
cout << "ARRAY" << endl;
char c[20] = "hello world!\0";
c[0] = 'd';
for (int i = 0; i < 20; i++) {
cout << c[i];

}
cout << endl;
cout << "POINT" << endl;
char *pc = "hello world!";
*pc = 'a';
while (*pc) {
cout << *pc;
pc++;
}
cout << endl;
cout << "OVER" << endl;
return 0;
}



结果是
ARRAY
dello world!
POINT

为什么没有看到第二个循环打印的结果呢?
[解决办法]
代码写错了,应该这么写 :
char *pc;
pc=&a;
*pc="HEllo World";

接输出循环…
[解决办法]
char c[20] = "hello world!\0";
上述表示在计算机内存堆上分配字符数组,用字符串赋值初始化它,可以对其内容进行修改。
char *pc = "hello world!";
上述表示在计算机常量内存中申请一块区域存放这个字符串,然后用指针指向它,指向常量内存的指针是无法改变其指向的值的。
[解决办法]
这个问题常见于CSDN。。。
lz可以debug一下
看看pc所指向的位置
[解决办法]
应该是字符串字面值的关系 
[解决办法]
不要企图修改字符串字面量!!!!
[解决办法]
http://wapwenku.baidu.com/view/de39690cf78a6529647d53cc.html?ssid=0&from=844b&uid=3A4DF534E68BDBA81670CCCA751E8C1A&pu=sz%401320_1001%2Cusm%400%2Cta%40iphone_2_4.1_3_534&bd_page_type=1&tj=wenku_3_0_10

这个讲的比较详细

热点排行