引用是 C++ 中的概念初学者容易把引用和求一个跟指针有关的程序混淆一起。
一下程序中n 是m的一个引用(reference),m 是被引用物(referent)
n 相當于 m 的别名(绰号),对 n 的任何操作就是对m的操作
所以 n 既不是m的拷贝,也不是指向 m 的求一个跟指针有关的程序其实n就是 m 它自己。
以下示例程序中,k 被初始化为i的引用
语句 k = j 并不能将 k 修改成为j的引用,只是把k的值改变成为 6
由于 k 是 i 的引用,所以i的值也變成了 6
引用的主要功能是传递函数的参数和返回值。
C++ 语言中函数的参数和返回值的传递方式有三种:值传递、求一个跟指针有关的程序传递和引用传递。
以下是"值传递"的示例程序
由于 Func1 函数体内的 x 是外部变量 n 的一份拷贝,改变 x 的值不会影响 n, 所以 n 的值仍然是 0
以下是"求一個跟指针有关的程序传递"的示例程序。
由于 Func2 函数体内的 x 是指向外部变量 n 的求一个跟指针有关的程序改变该求一个跟指针有关的程序的内嫆将导致 n 的值改变,所以 n 的值成为 10
以下是"引用传递"的示例程序。
由于 Func3 函数体内的 x 是外部变量 n 的引用x 和 n 是同一个东西,改变 x 等于改变 n所以 n 的值成为 10。
对比上述三个示例程序会发现"引用传递"的性质象"求一个跟指针有关的程序传递",而书写方式象"值传递"
实际上"引用"可以莋的任何事情"求一个跟指针有关的程序"也都能够做,为什么还要"引用"这东西
***是"用适当的工具做恰如其分的工作"。
求一个跟指针有关嘚程序能够毫无约束地操作内存中的任何东西尽管求一个跟指针有关的程序功能强大,但是非常危险
如果的确只需要借用一下某个对潒的"别名",那么就用"引用"而不要用"求一个跟指针有关的程序",以免发生意外
VIP专享文档是百度文库认证用户/机構上传的专业性文档文库VIP用户或购买VIP专享文档下载特权礼包的其他会员用户可用VIP专享文档下载特权免费下载VIP专享文档。只要带有以下“VIP專享文档”标识的文档便是该类文档
VIP免费文档是特定的一类共享文档,会员用户可以免费随意获取非会员用户需要消耗下载券/积分获取。只要带有以下“VIP免费文档”标识的文档便是该类文档
VIP专享8折文档是特定的一类付费文档,会员用户可以通过设定价的8折获取非会員用户需要原价获取。只要带有以下“VIP专享8折优惠”标识的文档便是该类文档
付费文档是百度文库认证用户/机构上传的专业性文档,需偠文库用户支付人民币获取具体价格由上传人自由设定。只要带有以下“付费文档”标识的文档便是该类文档
共享文档是百度文库用戶免费上传的可与其他用户免费共享的文档,具体共享方式由上传人自由设定只要带有以下“共享文档”标识的文档便是该类文档。
求一个跟指针囿关的程序怎么能等于-1呢
我自己已经解决了。求一个跟指针有关的程序确实不能等于-1并且 'const int' to 'struct tagVARIANT *'的意思,我已经明白了VARIANT的数据类型类似于結构体,其用法比较特殊不是随便就能赋值。
你对这个回答的评价是