文章目录
1、输出输入使用“cout<<”和“cin>>”2、访问外部变量3、从指针到引用4、引用与指针的比较5、返回引用类型的函数1、输出输入使用“cout<<”和“cin>>”
#include <iostream>using namespace std;int main(int argc, char* argv[]){int a;char ss[100];cout << "Input your name:\n";cin >> ss;cout << "Input your age:" << endl; //endl就相当于换行 cin >> a;cout << "Hello, " << ss << "!Your are " << a << " old."; }
同时,需要包含的库文件是iostream,io代表输入输出,所以iostream就是输入输出流,其中还包含一些其他很基础的输入输出函数:
cin:标准输入istream类对象,cin使我们可以从设备读如数据。
cout;标准输出(standard output)的ostream类对象,cout使我们可以向设备输出或者写数据。
cerr:标准错误(standard error)的osttream类对象,cerr是导出程序错误消息的地方,它只能允许向屏幕设备写数据。
2、访问外部变量
在C++中,即使内部变量和外部变量同名,外部变量仍然能够被访问到,只要在变量名前冠以作用域分辨符“::”:
#include <iostream>using namespace std;int a = 111;int main(int argc, char* argv[]){int a = 314;cout << "Local a= " << a << endl;cout << "Global a= " << ::a << endl;}
3、从指针到引用
在C++中,可以使用“&”运算符来声明引用另外一个变量,相当于给另个变量起了一个别名(化名)。
#include <iostream>using namespace std;int main(int argc, char* argv[]){double a = 1.23456;double &b = a; //给变量a取一个化名(别名)为b,然后就可以通过修改b来修改a的值了 b = 99.9;cout << "a的值为:" << a << endl; }
对于这样的引用,我们可以把它想象成一个形式上比较漂亮的指针,它的好处在于我们不用担心指针是否被初始化,也不用担心如何获取它的值。
4、引用与指针的比较
(1)在C++用别名(引用)
#include <iostream>using namespace std;void change(double &a, double b){a= 1314;b= 520;}int main(int argc, char* argv[]){double x=1.11, y=2.22;change(x, y);cout << "x的值:" << x << endl;cout << "y的值:" << y << endl;}
(2)在C++用指针
#include <iostream>using namespace std;void change2(double *a, double b){*a= 1314; //改变指针所指向地址的数 b= 520;}int main(int argc, char* argv[]){double x=1.11, y=2.22;change2(&x, y); //指针传入值需要取址 cout << "x的值:" << x << endl;cout << "y的值:" << y << endl;}
其结果是与使用引用一样的。
5、返回引用类型的函数
#include <iostream>using namespace std;int &biggest(int &a, int &b){if(a > b) return a; else return b;}int main(int argc, char* argv[]){int k=2, m=9, res;res= biggest(k, m);cout << "The biggest is:" << res << endl;}
在判断最大值的函数中返回的是引用类型的数据,因此需要用&来定义函数 。
若此时若返回的是一个具体的数字而不是某引用类型数据,那编译器必然就会报错 ,因为返回值和函数类型不对应。
biggest函数若用C语言格式写,则是如下:
int *biggest(int *a, int *b){if(*a > *b)return a;elsereturn b;}