黑马程序员技术交流社区

标题: string a=""; string a=null; 区别是什么 [打印本页]

作者: 王毅    时间: 2013-3-14 17:28
标题: string a=""; string a=null; 区别是什么
本帖最后由 王毅 于 2013-3-15 20:08 编辑

Console.WriteLine("");
Console.WriteLine(null); // 打印的时候为什么会出错。
作者: 李贤贤    时间: 2013-3-14 17:40
我觉得里边的参数是object类型的,而null不是数据类型,所以系统里边不能识别,所以编译出错了。你可以查下msdn
作者: 马甲大王    时间: 2013-3-14 17:43
String a="";是a引用指向一个空的字符,不是空引用,已经浪费了空间。
String b = null;   是b没指向任何字符,是空引用,没浪费空间

作者: 边亮    时间: 2013-3-14 17:43
上面一个表示的是空 打出来是个空格
null表示什么都没有 所以会出错
作者: 岳珅    时间: 2013-3-14 17:44
string a="";声明了a并且 申请了一个内存空间用来存放"",有空值有地址。
string a=null; 声明了a但是没有申请内存空间来存放,无值无地址。
作者: 孔健    时间: 2013-3-14 17:47
null是没有分配内存空间,“”是分配了内存空间,但里面没有值,它的长度为0;
对null使用.length()会发生编译异常。
作者: 宋健    时间: 2013-3-15 17:58
string a="";已经在堆上开辟了空间存储空值;
string a=null;没有在堆上开辟空间,只是在栈上分配了一个string类型地址。
作者: jy郑娟    时间: 2013-3-15 18:54
string str = null 表示没有赋予str一个与之对应的实际对象(没有内存分配)
string str =“” 表示一个内容为空字符串的字符串对象
前者由于没有指向具体对象,所以在没有将它指向具体对象之前,不能用“.”运算符引用string类对象的很多方法和属性。
但是后者就可以。
string a;
Co.Wri(a);//这里会报错,因为没有初始化a
string a="";
Co.Wri(a); //这里不会报错,因为把a初始化了


作者: .netNo1    时间: 2013-6-19 17:00
null 没有创建内存空间,输出的是空引用指针




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2