黑马程序员技术交流社区
标题:
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