注册 登录
编程论坛 C++教室

求助:三种存储多个字符串的优缺点?

BBGASJ 发布于 2008-09-17 15:22, 1236 次点击
1,指针:
    char *abc[3]=
    {
        "jghgj",
        "fghg",
        "jh"
    };
2,二维数组

    char abc[3][25]=
    {
        "jghgj",
        "fghg",
        "jh"
    };
3,string
    string abc[3]=
    {
        "jghgj",
        "fghg",
        "jh"
    };

指针和string能节省空间,书上说指针的缺点是不能修改字符,但

    char *abc[3]=
    {
        "jghgj",
        "fghg",
        "jh"
    };
   
    abc[0][0]='g';

却编译通过。

不明白书中的意思,不能修改是如何不能修改?还是现在的C++实现已经可以修改了?维

[[it] 本帖最后由 BBGASJ 于 2008-9-17 22:00 编辑 [/it]]
7 回复
#2
blueboy820062008-09-17 18:42
如果只是做LZ这种修改,是没问题的,
至于你所说的不能修改,就不知道是指什么了...
#3
BBGASJ2008-09-17 22:00
回复 2# blueboy82006 的帖子
感谢

期待更突破的回答
#4
BBGASJ2008-09-18 21:39
没人解释了吗
#5
newyj2008-09-18 22:08
看书上说的 是 可以 被编译 但是 运行时可能会出错的
为什么就是说不清了
#6
守鹤2008-09-19 14:14
是string 定义的字符串可修改其中的字符。
例: string  a="huang ying";
abc[3]=t; 这就是错误的。而你所说的指针修改则是正确的
char *abc="dfjei";   
    abc[0]='g';
#7
BBGASJ2008-09-20 16:12
回复 6# 守鹤 的帖子
abc[3]=t;
是指哪一个?
#8
BBGASJ2008-09-23 18:18
哈哈,今天明白指针法为啥不能修改了,改的时候出线不能WRITTEN,指针指向的字符串是常量
1