无符号变量的默认值是什么? 我有一个C++程序。我是这样做的: #include <iostream> int main() { unsigned x,cifra,cifraOld; std::cout<<cifra; } std::cout<<cifra;
由于某种原因,输出为8。有人能告诉我8是无符号变量的默认值吗?如果没有,为什么会发生在我身上 将行更改为无符号x,cifra=0,cifraOld;将输出0。此声明:无符号变量的默认值是什么? 我有一个C++程序。我是这样做的: #include <iostream> int main() { unsigned x,cifra,cifraOld; std::cout<<cifra; } std::cout<<cifra;,c++,std,iostream,unsigned,C++,Std,Iostream,Unsigned,由于某种原因,输出为8。有人能告诉我8是无符号变量的默认值吗?如果没有,为什么会发生在我身上 将行更改为无符号x,cifra=0,cifraOld;将输出0。此声明: unsigned cifra; 将cifra初始化为不确定的值 从不确定值读取,例如: #include <iostream> int main() { unsigned x,cifra,cifraOld; std::cout<<cifra; } std::cout<<cifra; 调用未
unsigned cifra;
将cifra初始化为不确定的值
从不确定值读取,例如:
#include <iostream>
int main() {
unsigned x,cifra,cifraOld;
std::cout<<cifra;
}
std::cout<<cifra;
调用未定义的行为
使用UB的程序完全可以打印8。它可以打印0、42或hello world。事实上,程序不仅可以打印任何值,而且就语言而言,任何事情都可能发生。实际上,您通常会得到一些数值,这个数值恰好位于从中读取的内存位置。如果幸运的话,该程序将出现故障,并在UB导致严重问题之前向您发出警告。此声明:
unsigned cifra;
将cifra初始化为不确定的值
从不确定值读取,例如:
#include <iostream>
int main() {
unsigned x,cifra,cifraOld;
std::cout<<cifra;
}
std::cout<<cifra;
调用未定义的行为
使用UB的程序完全可以打印8。它可以打印0、42或hello world。事实上,程序不仅可以打印任何值,而且就语言而言,任何事情都可能发生。实际上,您通常会得到一些数值,这个数值恰好位于从中读取的内存位置。如果幸运的话,该程序将出现故障,并在UB导致严重问题之前向您发出警告。没有默认值。访问未初始化的变量是未定义的行为。没有默认值。访问未初始化的变量是未定义的行为。但为什么在执行std::cout@ezluci未定义的行为意味着您可以获取任何值在实践中,您通常会获取堆栈上碰巧存在的任何垃圾值。谢谢你们。但为什么我做std时输出是8:cout@ezluci未定义的行为意味着您可以获取任何值在实践中,您通常会获取堆栈上碰巧存在的任何垃圾值。谢谢各位。