是“;字符串s";编译为“;string s=新字符串(.)&”;
本文关键字:字符串 编译 quot string | 更新日期: 2023-09-27 18:27:19
字符串不是值类型,但我们仍然像使用它的值类型一样使用它。那么,string s;
是被编译成类似string s = new String(..);
的东西吗?
当您定义string s;
时,您只定义了一个引用,该引用当前根本不指向任何内容。由于字符串是引用类型,编译器不会生成string s = new String(..);
。您可以将其理解为string s = null;
将是编译结果。
对于值类型(如int),情况有所不同。例如,当您定义int i;
时,它将编译为int i = 0;
,其中0是默认值。
我发现了我的困惑:在阅读了这篇文章后,我明白堆栈将保存对s
的引用,该引用将在初始化后分配到堆中。