ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++Primer第五版:默认初始化问题

2021-11-03 22:02:48  阅读:162  来源: 互联网

标签:初始化 第五版 函数 C++ 内置 默认 类型 Primer 变量


如果定义变量时没有指定初始值,则变量被默认初始化,此时变量被赋予“默认值”。

分两种情况:函数体内部初始化与函数体之外初始化。

函数体之外初始化无论什么类型的变量都会有对应的固定的默认值。但是函数体内部初始化时,C++的基本内置类型的变量将被赋予一个随机值!

根据《C++Primar(第5版)》2.1可知,C++的基本内置类型包括算术类型和空类型:算术类型包括:整形数、浮点数、字符,布尔值,如下图所示;空类型如函数返回值类型void。 注意,string类型不属于基本内置类型

所以如果有以下代码:

#include<iostream>
using namespace std;
#include<vector>
#include<string>

//以下注释为变量默认初始化之后的值
//(1)函数体之外的变量
int i;// 0
char c;// '\0'
string s;// ""
bool b;//false
int main()
{

	//(2)函数体之内变量
	int i2;// -858993460
	char c2;// -52'?'
	string s2;// ""
	cout << endl;
	system("pause");
	return 0;
}

默认初始化之后的结果在注释中,可以看到对于基本内置类型(int char等),在函数体内部默认初始化时会产生一个随机的值。对于非基本内置类型(string等),无论是在函数体内部还是外部,默认初始化产生的值都是一样的,不存在“随机”问题。

标签:初始化,第五版,函数,C++,内置,默认,类型,Primer,变量
来源: https://blog.csdn.net/AggressiveShuai/article/details/121131147

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有