c++ - 如何重新初始化/将整数设置为空值
问题描述
示例代码:
bool running = true;
while (running == true) {
int x;
cout << "Enter an integer: ";
cin >> x;
string y;
cout << "Enter a string: ";
cin >> y;
first.S_Return(x);
first.S_Return(y);
x=null; // null is not a recognised integer
y=null;
system("PAUSE");
}
我想知道的是,
如果我想将任何数据类型重新初始化为 null 值,例如在声明它们时,是否有任何方法可以执行此操作,例如清除、删除、设置为 null 方法等。或者我是否需要删除一个指针并使用 new 和 delete 将它们放在堆上?
解决方案
C++ 不提供“未初始化”的概念,甚至很少定义“显式未定义”的常见概念。
关于“未初始化”,局部范围内非类类型的变量未初始化,并且无法在运行时检测此类变量是否已初始化。程序员只有在它们之前被赋值时才能访问这些变量。否则,程序的行为是未定义的。
关于“显式未定义”,如果需要,程序员通常会将相应数据类型范围内的一个特定值视为“未定义”。例如,对于变量“int numOfChildren”,您可以定义一个值-1
来表示子级的数量未知或未评估。相反,对于指针,有一个称为 的常量nullptr
,它通常用作明确表示未定义状态的值。但请注意:除非在文件范围内定义(即是全局变量) ,否则类似声明int *x
不会设置x
to的值。nullptr
x
希望能帮助到你。
推荐阅读
- xslt - 中间没有任何空格的长句子流入相邻的单元格/块:
- json - 如何在 AWS Cloudformation 资源部分的 Fn:Join 中使用用户输入的参数作为参考
- python - 是否可以在字典理解内分配变量?
- amazon-web-services - 将 t3a.medium 转换为 t4g.medium EC2 实例
- node.js - 反应站点网络 main.chunk 长负载
- scala - elastic4s中如何使用search_after
- spring - 使用 skipPolicy 或 ItemListenerSupport 哪一个?
- sh - .bat to .sh translation
- javascript - 使用 lightGallery 创建图像和 HTML5 视频的单个幻灯片
- c - 由 if 条件包围的循环内的 Break 语句