1、C++输入与输出
(1)<iostream>是Input Output Stream的缩写,是标准的输入输出流库,定义了标准的输入、输出对象。
(2)std::cin是istream类的对象,它主要面向窄字符(narrow characters (of type char))的标准输入流。
(3)std::cout是outstream类的对象,它主要是面向窄字符的标准输出流。
(4)std::endl是一个函数,流插入输出时,相当于插入一个换行字符加刷新缓冲区。
(5)<<是流插入运算符,>>是流提取运算符。(C语言还用这两个运算符做位运算左移/右移)。
(6)使用C++输入输出更方便,不需要向printf/scanf输入输出的那样,需要手动指定格式。C++的输入输出可以自动识别变量类型(本质上是通过函数重载实现的),其实最重要的是C++的流能更好的支持自定义类型对象的输入输出。
示例:
#include<iostream>
using namespace std;
int main()
{
char a = 10;
cin >> a;//输入
cout << a;//输出
return 0;
}
结果:
(7)IO流设计类和对象、运算符重载、继承等很多面向对象的知识。
(8)cout/cin/endl等都属于C++标准库,C++标准库都放在一个叫std(stdard)的命名空间中,所以,我们在写代码时都写这样一句代码:
using namespace std;,这样我们就可以直接使用cout、endl、cin等函数了。
(9)一般日常练习我们可以使用:using namespace std;实际项目开发中不建议使用:using namespace std;以防命名冲突。
(10)在C++文件中,我们没有包含<stdio.h>,也可以使用printf和scanf,因为<iostream>间接包含了<stdio.h>,vs系列编译器是这样的,其它的编译器可能会报错。
2、缺省参数(又叫默认参数)
(1)缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果我们没有指定实参,则采用该形参的缺省值,否则使用指定的实参,缺省参数分为全缺省和半缺省。
代码示例:
#include<iostream>
using namespace std;
void func(int a = 11)//a是默认参数
{
cout << a << endl;
}
int main()
{
func();//没有传参时,使用参数的默认值,此时输出11
func(22);//传参时,使用指定的实参。此时输出22
return 0;
}
结果:
(2)全缺省即就是全部形成给默认值,半缺省就是部分形参给默认值。C++规定:半缺省参数必须从右往左依次连续缺省,不能间隔跳跃给缺省值。
全缺省示例:
#include<iostream>
using namespace std;
void func1(int a = 1, int b = 2, int c = 30)
{
cout << "a=" << a << endl;
cout << "b=" << b << endl;
cout << "c=" << c << endl;
}
int main()
{
func1();
return 0;
}
结果:
半缺省示例:
//半缺省
#include<iostream>
using namespace std;
void func(int a, int b, int c = 0)
{
cout << "a=" << a << endl;
cout << "b=" << b << endl;
cout << "c=" << c << endl;
}
int main()
{
func(11, 22);
return 0;
}
结果:
(3)函数声明和定义分离时,缺省参数不能在函数声明和定义时同时出现,规定:必须在函数声明时给缺省值。
示例:
错误写法:
正确写法: