1.1输入/输出流
流是字符集合或数据流的源或目的地
有两种流:
1) 输出流,在类库里称为ostream
2) 输入流,在类库里称为istream
同时处理输入和输出,由istream和ostream派生双向流iostream.
输入 输出
流 istream ostream
运算符 >> <<
预定义对象 cin cout
设备 键盘 显示器
1.2 引用
1.2.1 引用的作用
引用是用于给变量取别名
1.2.2 引用的定义的格式
数据类型 &别名 = 变量名;
比如:int a = 5;
int &b = a;
别名是变量名的引用,b是a的引用。
别名的引用对象是变量名,a是b的引用对象。
引用的对象是变量,不是常量,不能对常量进行引用!!!
& :引用声明符
数据类型:跟变量名的数据的类型是一样的
1.2.3 引用时需注意的问题
- 使用引用的时候必须要初始化,跟const关键字一样,在定义的同时必须初始化
- 引用一旦初始化,则固定引用,之后使用时,引用的目标不会发生改变
- 引用的本质:指针,指针的指向固定指向,----->指针常量
- 引用本身在系统占用一块内存空间,内存空间的大小一般固定为4个字节(指针所占的空间大小)(建立工程时一般选择了win32工程)
- 引用的空间实际是存储引用对象的地址,只是在打印引用的地址的时候显示是引用对象的地址
- 引用作为函数的参数传递
函数的参数传递的方式:
1)值传递:将实参的值传递给形参变量,形参改变不影响实参的变化
2)址传递:将实参以地址形式传递给形参变量(指针),形参指向的空间改变,实参指向的空间也会跟着变化
3)引用传递:效果跟址传递是一样,在C++中,能用指针作为函数的参数传递,基本都可以改为引用作为函数的参数
#include
using namespace std;
//值传递
//int x = a; int y = b;
void swap1(int x, int y)
{
int temp;
temp = x;
x = y;
y = temp;
}
//地址传递
//int *x = &a; int *y = &b;
void swap2(int *x, int *y)
{
int temp;
temp = *x;
*x = *y;
*y = temp;
}
//引用传递
//int &x =