相关疑难解决方法(0)

508
推荐指数
8
解决办法
5万
查看次数

默认情况下,布尔变量并不总是false?

我在类中声明了一个布尔变量bool abc;,并认为默认情况下它是假的.我的程序中的if条件if (abc)结果为true,所以我输出abc的值,并看到它包含值55.这是正常的吗?我们是否总是要指定'bool abc = false'以确保它是假的?

c++ syntax

41
推荐指数
4
解决办法
5万
查看次数

数组中的默认值

这样的数组的默认值是什么:

char c[20];
Run Code Online (Sandbox Code Playgroud)

顺便说一句,有吗?

c++ arrays

10
推荐指数
2
解决办法
2万
查看次数

未初始化的布尔变量不一致

可能重复:
为什么在打印未初始化的变量时会看到奇怪的值?
使用未初始化的变量和编译器(GCC)的乐趣

我想知道在解决代码问题时遇到的一个神秘问题.

生产中存在的代码具有未初始化的布尔变量,并且库正在检查此布尔值.在LIVE站点中,此变量的行为始终为TRUE.开发环境中的相同代码始终表现为FALSE.

我知道,由于LIVE和DEV之间的环境差异,未初始化的bool变量可能具有未定义的值.

但这是我的问题.

如果我在代码中放入一个日志语句,编译它并将二进制文件放在开发环境中,bool变量总是为TRUE,而对于LIVE中的代码则为FALSE.

日志语句如何影响未初始化的bool变量的值?我想知道可能性.

c++ memory boolean initialization

5
推荐指数
1
解决办法
3118
查看次数

已初始化的已分配数组的值

如果我有:

int array[20];
Run Code Online (Sandbox Code Playgroud)

array[0]如果还没有在那里进行任何初始化,那么它的价值是多少?有没有办法检查它是否已初始化?

c++ arrays

4
推荐指数
1
解决办法
2937
查看次数

当我在C++中打印未初始化的变量时会发生什么?

为什么打印32767(或其他随机数)?什么是std::cout印刷品?为什么不NULL(或0)?

int main() 
{
    int a;
    std::cout << a;
}
Run Code Online (Sandbox Code Playgroud)

c++

4
推荐指数
2
解决办法
878
查看次数

C++ 11为什么cout从布尔数组中打印大整数?

#include <iostream>
using namespace std;

int main() {
    bool *a = new bool[10];

    cout << sizeof(bool) << endl;
    cout << sizeof(a[0]) << endl;

    for (int i = 0; i < 10; i++) {
        cout << a[i] << " ";
    }

    delete[] a;
}
Run Code Online (Sandbox Code Playgroud)

以上代码输出:

1
1
112 104 151 0 0 0 0 0 88 1 
Run Code Online (Sandbox Code Playgroud)

最后一行应该包含垃圾值,但为什么它们不是全部为0或1?堆栈分配的数组也会发生同样的事情.

解决:我忘了sizeof计算字节数,而不是像我想象的那样.

c++ cout

1
推荐指数
1
解决办法
502
查看次数

这段代码有用吗?

这段代码有什么用吗?

int *n;
while (n!=0)
    {
        n = &n;
    }
Run Code Online (Sandbox Code Playgroud)

c c++

0
推荐指数
1
解决办法
211
查看次数