黑马程序员技术交流社区
标题:
为什么定义一个string类型的变量可以为null而char就不行?
[打印本页]
作者:
王起
时间:
2013-3-11 17:24
标题:
为什么定义一个string类型的变量可以为null而char就不行?
本帖最后由 王起 于 2013-3-15 13:06 编辑
为什么定义一个string类型的变量可以为null而char就不行?
作者:
HM张扬
时间:
2013-3-11 17:29
char表示一个字符.如果不填 好像是0 吧...
string是可以没有的.我认为这是最没有显示的数据类型了
作者:
徐鸿燕
时间:
2013-3-11 17:49
整数型(
byte
、
short
、
int
和
long
)的基本类型变量的默认值为
0
;
单精度浮点型(
float
)的默认值为
0.0f
。
双精度浮点型(
double
)的默认值为
0.0d
。
字符型(
char
)的默认值为
‘\u0000’
。
布尔型(
boolean
)的默认值为
false
。
String的默认值为
null
。
至于为什么能而为什么不能,这个问题无意义。就好像数学算法上为什么(1+1=2),这个结论是早就定义好的。
作者:
肖彬
时间:
2013-3-11 17:56
因为char是属于基本类型 数据是存在栈(stack)中 而string不属于基本类型 是存在堆(heap)中
作者:
王起
时间:
2013-3-11 17:56
谢谢楼上的2位
作者:
宋健
时间:
2013-3-11 19:01
这个要从char类型和string类型的数据来看。
char类型是值类型,存在在栈上,在编译时要求分配内存,所以必须为其赋初值,其他值类型如int,double,枚举,结构等都一样;
string是引用类型,在栈上存储地址,堆上存储值,在程序运行时动态的分配内存,所以允许在变量声明时声明为null,不为其分配内存。
以上,请参考
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2