一、引用的概念
引用(reference)是另一标识符的别名,可以说是C++的一种新的变量类型,是对C的重要扩充。当建立引用时,程序用另一个变量或对象(目标)的名字初始化它(即它代表了标识符的左值),此时,引用作为目标的别名而使用,对引用的改动实际就是对目标的改动。
为建立引用,在编程时应先写上目标的类型,再写引用运算符“&",然后是引用的名字。引用能使用任何合法的变量名,它可以在该变量出现的任何地方出现,这称为独立引用。 int a=;//定义变量a
int &b=a;//引用变量a
a=;
b=;//a=20; 如左图 声明b是对整数a的引用, 并且使其初始化为变量a的一个别名。一旦b同a的内存对象发生了联系,就不能改变,而且,对b的访问就是对a的访问,对a的访问也就是对b的访问。变量a和引用b共用同一内存空间 注意:类型后跟&是引用,其它地方则是取地址:
int *p=&i;//取i的地址
printf("%d",&i);//非引用,取i的地址 二、引用的使用
引用变量
int i;
int &j=i;
int &k=i;
i=;
j=;
k=;
printf("i=%d,j=%d,k=%d",i,j,k); 引用作函数参数
int add(int&a,int &b)
{
a=a+b;
return a;
}
int _tmain(int argc, _TCHAR* argv[])
{
int i,j,k;
i=;
j=;
k=add(i,j); //i=i+j;
printf("i=%d,j=%d,k=%d",i,j,k); getchar();
return ;
}
引用作函数返回值 int & add(int&a,int &b)
{
a=a+b;
return a;
}
int _tmain(int argc, _TCHAR* argv[])
{
int i,j;
i=;
j=;
int &k=add(i,j); //i=i+j;
k=;
printf("i=%d,j=%d,k=%d",i,j,k); getchar();
return ;
}

代码

#include "stdafx.h"
#include <malloc.h>
int & add(int&a,int &b)
{
a=a+b;
return a;
}
int _tmain(int argc, _TCHAR* argv[])
{
int i,j;
i=;
j=;
int &k=add(i,j); //i=i+j;
k=;
printf("i=%d,j=%d,k=%d",i,j,k); getchar();
return ;
}

mfc 引用的更多相关文章

  1. 在非MFC程序中引用CString

    CString在当今软件设计界里还是小有名气的,说它是MFC中使用的最多的类一点也不过,然而在使用sdk编windows程序的时候,确不能利用CString类,只能用sdk的运行时库,比如strlen ...

  2. 做MFC的时候引用了头文件但VC还是报missing storage-class or type specifiers

    我在客户端clg.h头文件中引用了头文件“ClientSocket.h”,然后在客户端clg.h中的类中声明了类CClientSocket的对象,可是编译报错:d:\vc++\客户端\客户端dlg.h ...

  3. mfc 类对象的引用

    类对象引用 自写复制构造函数 一. 类对象引用 在第4课的时候,我们已经讨论过C++引用特性.类变量的引用呢,实际上也是类似的. Tdate d1; Tdate &d2=d1; 二.自写复制构 ...

  4. VC++/MFC 最常用宏和指令

    1.#include指令  包含指定的文件,最基本的最熟悉的指令,编程中不得不用,包含库文件用双尖括号,包含自定义头文件用双引号. 2.#define指令   预定义,通常用它来定义常量(包括无参量与 ...

  5. 魔改——MFC SDI 支持 内嵌 EXCEL OLE

    ==================================声明================================== 本文版权归作者所有 未经作者授权 请勿转载 保留法律追究的 ...

  6. 问题解决——MFC Ribbon 响应函数 错乱 执行其他函数

    ==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完 ...

  7. 问题解决——MFC resource.h 无法添加、提交到SVN

    =================================版权声明================================= 版权声明:原创文章 禁止转载  请通过右侧公告中的“联系邮 ...

  8. 问题解决——MFC error RC2170: bitmap file res\XXXXXXX.png is not in 3.00 format

    =================================版权声明================================= 版权声明:原创文章 谢绝转载  请通过右侧公告中的“联系邮 ...

  9. 数组类型与sizeof与指针的引用

    以char类型为例: char a[100];     //a类型为char[100]    &a类型为 char (*)[100]    *a类型为char char *p = a;     ...

随机推荐

  1. Oracle EBS 报错:此责任无可用函数。 更改责任或与您的系统管理员联系。

    解决:修改配置文件        1.FND: Diagnostics (FND:诊断)            启用设为”是”        2.Utilities:Diagnostics (公用程序 ...

  2. C# Redis的操作

    Nuget添加StackExchange.Redis的引用 由于Redis封装类同时使用了Json,需要添加JSON.NET引用(Newtonsoft.Json) Redis封装类 /// <s ...

  3. 使用Charles进行网络请求抓包解析

    使用Charles进行网络请求抓包解析 0. 懒人的福音(⌐■_■)(破解版下载地址,记得安装java库支持) http://pan.baidu.com/s/1c08ksMW 1. 查看电脑的ip地址 ...

  4. [翻译] RDVTabBarController

    RDVTabBarController https://github.com/robbdimitrov/RDVTabBarController 效果: Supports iPad and iPhone ...

  5. 也许,这样理解HTTPS更容易

    http://kb.cnblogs.com/page/563885/ 本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样.但是这并不代表HTTPS的真实设计过程.在阅读本文 ...

  6. Linux 系统的用户和组详解_【all】

    1.Linux 用户和用户组详解 2.Linux 文件特殊权限详解 3.Linux 文件的读写执行权限的说明 4.Linux 架构之简述企业网站 5.Linux 环境变量设置详解 6.企业生产环境用户 ...

  7. CMake: Could NOT find PkgConfig

    转自http://www.ogre3d.org/forums/viewtopic.php?f=22&t=78490 Looking for OGRE... Could NOT find Pkg ...

  8. PHP设计模式系列 - 迭代器

    PHP迭代器: 可帮助构造特定的对象,那些对象能够提供单一标准接口循环或迭代任何类型的可计数数据.(不是特别常用,在PHP中) 使用场景: 1.访问一个聚合对象的内容而无需暴露它的内部表示. 2.支持 ...

  9. java内部类案例

    实现键值对的存储输出 import java.util.Arrays; public class EntryDemoTest { //实现键值对的存储 public static void main( ...

  10. 洛谷 P4011 孤岛营救问题【最短路+分层图】

    题外话:昨夜脑子昏沉,今早一调试就过了...错误有:我忘记还有墙直接穿墙过...memset初始化INF用错了数...然后手残敲错一个状态一直过不了样例...要是这状态去比赛我简直完了......or ...