问个C++小问题,关于string和字符指针~

[复制链接]
查看11 | 回复2 | 2011-5-4 16:58:35 | 显示全部楼层 |阅读模式
string a="12345";和char * b="12345";有什么区别呢?
string a="12345";是调用了构造函数来初始化对象a吗?就是说区别是对象a的内容是可以修改的~而b的内容不可以修改吗?

回复

使用道具 举报

千问 | 2011-5-4 16:58:35 | 显示全部楼层
string不是C++的基本数据类型,是通过调用类库实现的,char *b这种方法,相当于b指向后边那个串的首地址,然后后边一块连续的内存,当读到'/0'就认为串结束,这个也是可以修改的,可以像数组那样直接调用,也可以直接使用地址,比如*(b+2),就可以得到3,string只是在一个类里进行了对串的处理,你看不到他处理的方法而已。这样就可以说a是一个string型的对象,b是一个指向字符串的指针
回复

使用道具 举报

千问 | 2011-5-4 16:58:35 | 显示全部楼层
存储方式不同,都可以修改,一般操作方式也不太一样
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行