c++引用

   日期:2020-07-11     浏览:95    评论:0    
核心提示:引用为对象起了一个另外的一个名字(引用即别名)注意:指向常量的引用是非法的可修改为:const int& ref = 100;引用必须要初始化,引用使用之前不需要测试有效性,因此引用效率可能比使用指针效率高。引用和指针的关系引用对指针进行了简单的封装,底层仍然是指针获取引用地址时,编译器会进行内部转换指针和数组数组:存储在一块连续的内存空间中数组名就是这块连续内存空间的首地址...

引用

  • 为对象起了一个另外的一个名字(引用即别名)

注意:指向常量的引用是非法的
可修改为:

const int& ref = 100;

引用必须要初始化,引用使用之前不需要测试有效性,因此引用效率可能比使用指针效率高。

引用和指针的关系

  • 引用对指针进行了简单的封装,底层仍然是指针
  • 获取引用地址时,编译器会进行内部转换

指针和数组

数组:

  • 存储在一块连续的内存空间中
  • 数组名就是这块连续内存空间的首地址

swap()的例子

#include<iostream>
using namespace std;
void swap1(int,int);
void swap2(int*,int*);
void swap3(int&,int&);

int main()
{
    const double & d = 12.3;
    int num1 = 10,num2 = 5;
    swap1(num1,num2);
    cout << "swap1 "<< num1 << " "<<num2 << endl;
    swap2(&num1,&num2);
    cout << "swap2 "<<num1 <<  " "<<num2 << endl;
    swap3(num1,num2);
    cout << "swap3 "<<num1 <<  " "<<num2 << endl;
    return 0;
}
void swap1(int num1,int num2){
    int temp = num1;
    num1 = num2;
    num2 = temp;
}
void swap2(int* num1,int* num2){
    int temp = *num1;
    *num1 = *num2;
    *num2 = temp;
}
void swap3(int& num1,int& num2){
    int temp = num1;
    num1 = num2;
    num2 = temp;
}

聊天框实例

#include<iostream>
using namespace std;
//模拟实现游戏中私聊的函数

string chatTo(const string& toName,const string& content){
    string msg = "你悄悄地对[" + toName + "]说" + content;
    return  msg;
}
string chatFrom(const string& fromName,const string& content){
    string msg = "[" + fromName + "]悄悄地说" + content;
    return msg;
}
int main()
{
    cout << "请输入对方的名称" ;
    string toName;
    getline(cin,toName);
    cout << "请输入发送给对方的聊天信息";
    string content;
    getline(cin,content);
    string chatMsg = chatTo(toName,content);
    cout << endl;
    cout << chatMsg << endl;
    chatMsg = chatFrom("对方",content);
    cout << endl;
    cout << chatMsg << endl;
    return 0;
}


 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服