本帖最后由 百川 于 2014-3-14 08:31 编辑
int i 只声明变量 i 并没有初始化 int,也就是说此时变量 i 并没有值。而是当赋值时初始化。
int i = new int 是先执行 int 的初始化,此时 i 的值为 0 。,然后将初始化好的int对象指向变量 i 。
在vs中断点调试一下可以知道结果。内置类一般不用new。自定义类需要使用new关键字。
经版主更正,int i 和int i=new int 的编译结果都是int i=0;个人觉得这个比较符合逻辑。但是int i若之后没有赋值生成时会报错,而int i=new int不会。求解释。
(我使用的版本是老师给的7.0)若不赋值生成时会将没有使用过的变量回收,赋值后的编译结果为int i;i =15的结果是int i =15;而int i =new int() ; i =15;的结果为int i =0;i =15。
|