二者在声明的时候已经都分配了空间。a空间已赋值为空的,a1没有改变申请的空间内容。
一旦声明就已经分配空间了,这就是声明的时候必须要指定类型的原因string a; string a1 =""; string a2=null;string a;和string a2=null;一样都是空的而string a1 =""; 则赋值为一个空字符串
定义的时候区别就显示出来了,string str=null的时候,是不分配内存的。
但是string str=""的时候,内存是分配了的,只不过在分配的内存中存放的是空的而已
你的解释是对的~