【C++基础】输入&输出、缺省参数(缺省参数的概念;缺省参数的分类;输入&输出未完待续。。。)

三、输入&输出

#include 
using namespace std;
int main()
{
	int a;
	double b;
	char c;
	// 可以自动识别变量的类型
	cin >> a;
	cin >> b >> c;
	cout << a << endl;
	cout << b << " " << c << endl;
	return 0;
}

3.1 说明

  • 使用cout 标准输出对象(控制台)和cin 标准输入对象(键盘)时,必须包含 < iostream > 头文件以及按命名空间使用方法使用 std
  • cout和cin是全局的流对象,endl是特殊的C++符号,表示换行输出,他们都包含在< iostream >头文件中。
  • <<是流插入运算符,>>是流提取运算符。

提示:实际上cout和cin分别是ostream和istream类型的对象,>>和<<也涉及运算符重载等知识。

  • 不考虑格式控制,C++的输入输出更方便,不需要像printf/scanf输入输出时那样,需要手动控制格式。C++的输入输出可以自动识别变量类型。
  • 输入输出格式比较复杂,比如要控制浮点数的输出精度或是要控制字符输出宽度时,建议仍然使用printf/scanf等格式化输入输出函数,比较方便。

提示:C++同C语言一样使用空格或换行符分割输入流

3.2 未完待续。。。


四、缺省参数

4.1 缺省参数概念

缺省参数是在声明或定义函数时为函数的参数指定一个默认值;在调用该函数时,如果缺省该实参则采用该形参的默认值,否则使用指定的实参。

void Func(int a = 0)
{
	cout << a << endl;
}
int main()
{
	Func(); // 没有传参时,使用参数的默认值
	Func(10); // 传参时,使用指定的实参
	return 0;
}
  • C语言不支持(编译器不支持)

  • 给定的默认值必须是常量或者全局变量

  • 缺省参数的默认值不能在函数声明和定义中同时出现,如果有函数声明必须写在声明处。

  • //a.h
    void Func(int a = 10);
    //a.cpp
    void Func(int a = 20){//....}
    
  • 如果声明与定义位置同时出现默认值,恰巧两个位置提供的值不同,那编译器就无法确定到底该用那个缺省值。

4.2 缺省参数的分类

  • 全缺省参数
void Func(int a = 10, int b = 20, int c = 30)
{
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl;
}
int main()
{
	Func(); 
	Func(1);
	Func(1, 2);
	Func(1, 2, 3);
	return 0;
}
  • 半缺省参数
void Func(int a, int b = 10, int c = 20)
{
	cout << "a = " << a << endl;
	cout << "b = " << b << endl;
	cout << "c = " << c << endl;
}
int main()
{
	//Func(); //没有默认值的参数不能缺省
	Func(1);
	Func(1, 2);
	Func(1, 2, 3);
	return 0;
}

注意:

  • 半缺省参数的默认值必须从右往左依次来给出,不能间隔着给。
  • 同样调用带缺省参数的函数时,也应从左往右连续的传入参数,不能间隔缺省。

你可能感兴趣的:(C++,c++,开发语言,经验分享)