A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 田富丰 中级黑马   /  2013-12-23 14:26  /  1305 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 田富丰 于 2013-12-23 15:28 编辑

Char一般在什么情况下使用?为什么不都用String?

评分

参与人数 1黑马币 +3 收起 理由
乔兵 + 3

查看全部评分

5 个回复

倒序浏览

两者的区别:
string的内存管理是由系统处理,除非系统内存池用完,不然不会出现这种内存问题。
char *的内存管理由用户自己处理,很容易出现内存不足的问题。

当我们要存一个串,但是不知道其他需要多少内存时, 用string来处理就最好不过了。
当你知道了存储的内存的时候,可以用char *,但是不如用string的好,用指针总会有
隐患。

用string还可以使用各种成员函数来处理串的每一个字符,方便处理。
用char *处理串,就不如string的方便了,没有相应的函数来直接调用,而是要自己编
写函数来完成串的处理,而且处理过程中用指针还很容易出现内存问题。

我建议尽量使用string,不用char*;
尽量使用vector(关联数组),不用数组;
尽量使用迭代器,而不用指针。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
个人觉得吧,char属于一个小型容器,String呢,则是一个超大的容器,比如你想装钱呢,买个小钱包就可以了,没有必要买一个大包来装钱,还有char类型比整数型"小",如果Sting类型和整数相加,整数会和String连在一起为字符串,但是char和整数型相加,会被ASK码表转换成整数型,最终得到整数型数据,至于用到的地方我就不太了解了,希望能对楼主有所帮助{:soso_e113:}

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
谢谢  大家的解答  大概我懂了1!谢谢1!
回复 使用道具 举报
1,char可以衍生出字符数组;char[ ] ,而String字符串做不到;

2,String字符串有很多函数可以调用,比如反转之类的,这些数组要实现就要自己写,当然也可以转成字符串实现。

3,字符串与字符数组可以互相转换;

4, 1楼说的char*是char的一个特殊语言,专门用于指以'\0'为结束的字符串;

希望可以帮助到楼主!!

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
char定义时用单引号,只能有一个字母,数字。char c='c';
而String用双引号,可以是一个,也可能是多个字母,汉字等。就是所谓的字符串。String s="adsaf";
char只是一个基本类型,而String 是一个类,可以直接引用。
比如char c='c';不能直接对c调用方法。
String s="abc";  这时可以调用s.charAt(0);等方法,因为String是类,这是就是对象的调用了

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马