C++基础语法学习:引用 vs 指针
扫描二维码
随时随地手机看文章
C++ 引用 vs 指针
引用很容易与指针混淆,它们之间有三个主要的不同:
不存在空引用。引用必须连接到一块合法的内存。
一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
引用必须在创建时被初始化。指针可以在任何时间被初始化。
把引用作为参数:
void swap(int& x, int& y)
{
int temp;
temp = x; /* 保存地址 x 的值 */
x = y; /* 把 y 赋值给 x */
y = temp; /* 把 x 赋值给 y */
return;
}
int main(void)
{
int a = 3,b = 7;
swap(a,b);
}
把引用作为返回值:
int vals[] = {10.1, 12.6, 33.1, 24.1, 50.0};
int &Setvalue(int i)
{
return vals[i];
}
int main(void)
{
setValues(1) = 100;
cout<<"vals[1]"<<vals[1]<<endl;
}
改变了vals中的值。
获取当前日期和时间:
#include#includeusing namespace std; int main( ) { // 基于当前系统的当前日期/时间 time_t now = time(0); // 把 now 转换为字符串形式 char* dt = ctime(&now); cout << "本地日期和时间:" << dt << endl; // 把 now 转换为 tm 结构 tm *gmtm = gmtime(&now); dt = asctime(gmtm); cout << "UTC 日期和时间:"<< dt << endl; }
当上面的代码被编译和执行时,它会产生下列结果:
本地日期和时间:Sat Jan 8 20:07:41 2011 UTC 日期和时间:Sun Jan 9 03:07:41 2011
标准输入输出
(1)预定义的对象 cin 是 istream 类的一个实例。cin
对象附属到标准输入设备,通常是键盘。cin 是与流提取运算符
>> 结合使用的
(2)预定义的对象 cerr 是 ostream 类的一个实例。cerr
对象附属到标准错误设备,通常也是显示屏,但是 cerr 对象是非缓冲的,且每个流插入到
cerr 都会立即输出。
(3)定义的对象 clog 是 ostream 类的一个实例。clog
对象附属到标准错误设备,通常也是显示屏,但是 clog 对象是缓冲的。这意味着每个流插入到
clog 都会先存储在缓冲在,直到缓冲填满或者缓冲区刷新时才会输出
(4)预定义的对象 cout 是 ostream 类的一个实例。cout
对象"连接"到标准输出设备,通常是显示屏。cout 是与流插入运算符
<< 结合使用的;