来源:南宁少儿编程培训学校时间:2024/1/15 15:54:36
给大家分享一个我在平时没有特别注意的小知识点,给变量赋初值和变量的初始化之间的差别。
首先我们还是来看看代码:
箭头所指的是类成员变量value的初始化,也就是在程序在类实例化一个具体对象的时候才会给value赋值。
而比如:
int value;(定义)
value= 5;(赋初值)
value = value+6;(使用)
上面这种格式我们在行定义,第二行就是给变量赋初值。也就是在第三行使用变量之前就已经有值了。
总结:
赋初值在变量使用之前就有的值,变量初始化是与变量一起产生只要一声明就被赋的值。
笔记:
作为类成员变量,能不能赋初值呢?
我们来做点修改,将上面代码第14行的value赋一个初值,看看会怎么样。
程序在编译的时候系统提示一条警告,非静态成员不能赋初值。也就是说成员变量不能赋初值。
我们来看看运行结果
结果运行是正常的,那么为什么提示警告不能赋初值为什么程序还是运行正常呢?
因为这样的写法虽然不会导致运行出错,但是这个值根本就没有起作用。
类在定义的时候不会为变量分配内存空间,所以这个根本没有效。
类成员变量只有在实例化的是时候才会给变量分配内存空间,而实例化首先就会调用构造函数给变量初始化。
所以类非静态成员变量不支持在定义的是时候赋初值。