c++;双重初始化-默认值? 我调试了一些C++代码,遇到了一个从未显示过值的双。它与行一起声明 double x; 以前没有使用C或C++,我不确定双击是否有默认值?也就是说,在给出上述声明的情况下,如果x从来没有明确给出一个值,它会自动为0,还是为空
X用于代码中其他地方的计算,计算结果将显示给用户-目前它不是。。。计算结果如下:c++;双重初始化-默认值? 我调试了一些C++代码,遇到了一个从未显示过值的双。它与行一起声明 double x; 以前没有使用C或C++,我不确定双击是否有默认值?也就是说,在给出上述声明的情况下,如果x从来没有明确给出一个值,它会自动为0,还是为空,c++,C++,X用于代码中其他地方的计算,计算结果将显示给用户-目前它不是。。。计算结果如下: y*asin(sin(x/y)*sin(a*b)); 我假设如果x默认为0,这将导致编译/运行时错误?如果x默认为0,那么计算肯定会返回0,并且0将显示给用户?如果未指定初始化值,则如果双x的值位于堆/堆栈上,则该值未定义。如果是全局变量,则将其设置为0。如果未指定初始化值,则如果双x的值位于堆/堆栈上,则该值未定义。如果是全局变量,它将被设置为0。这取决于变量的声明位置 如果它被声明为全局变量,那么在main开
y*asin(sin(x/y)*sin(a*b));
我假设如果x默认为0,这将导致编译/运行时错误?如果x默认为0,那么计算肯定会返回0,并且0将显示给用户?如果未指定初始化值,则如果双x的值位于堆/堆栈上,则该值未定义。如果是全局变量,则将其设置为0。如果未指定初始化值,则如果
双x
的值位于堆/堆栈上,则该值未定义。如果是全局变量,它将被设置为0。这取决于变量的声明位置
如果它被声明为全局变量,那么在main
开始运行之前,它将被初始化为零
如果它被声明为函数中的非静态局部变量,那么它的值是不确定的(实际上,它将是变量占用的内存中的任何内容,它看起来是随机的)
使用未初始化(非静态)的局部变量会导致错误。这取决于变量的声明位置
如果它被声明为全局变量,那么在main
开始运行之前,它将被初始化为零
如果它被声明为函数中的非静态局部变量,那么它的值是不确定的(实际上,它将是变量占用的内存中的任何内容,它看起来是随机的)
使用未初始化(非静态)的局部变量会导致错误
零初始化在以下情况下执行:
因此,没有构造函数的类中的双数据成员将被初始化为零。今天这里有很多RTFM问题代码>如果声明在函数的作用域内,则不要将默认值指定给x(默认值到底是什么?)!您必须自己编写
double x=0.0代码>是否在某些函数中?@Raxvan:除非是静态存储持续时间:-)今天这里有很多RTFM问题代码>如果声明在函数的作用域内,则不要将默认值指定给x(默认值到底是什么?)!您必须自己编写double x=0.0代码>是否在某些函数中?@Raxvan:除非它是静态存储持续时间:-)如果它是类的成员怎么办?@athos则取决于声明包含对象的位置,以及类对成员执行的初始化。如果它是类的成员怎么办?@athos则取决于声明包含对象的位置,以及类对成员所做的初始化。