求助高人。。。。。新人学习C++又不懂的地方请指教为什么这个程序结果为 1;1;1;呢?

#include<iostream>
using namespace std;
int main()
{
int a(8);
int& ra ;
ra=a;
cout<<(ra==a)<<";";
cout<<(&ra==&a)<<";";
cout<<(sizeof(ra)==sizeof(a))<<endl;
return 0;
}

你这个程序有错误:
int& ra ;
ra=a;
应该改为:int & ra = a;
因为引用必须在声明的时候初始化。
那么什么是引用呢?说白了就是别名。给变量 ra 起个别名叫 a,所以 ra 和 a 都是对同一个变量的称呼,对应同一份内存。因此:
ra==a// 对应同一份内存
&ra==&a// 对应同一个地址
sizeof(ra)==sizeof(a)// 同样的字节长度
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-01-21
ra是a的引用,ra跟a是一样的,不过ra是a的另一个名字,
就等于,你本来有个名字一,还有个名字二,
名字一==名字二 当然等于一,因为就是你本人
名字一所在住址 == 名字二所在住址 当然也是一,因为你就住在一个地方
sizeof(名字一) == sizeof(名字二) 当然也是一,因为你的体积就是这么大。
第2个回答  2011-01-21
ra这里声明为引用变量了,但是引用变量是在声明时同时就要初始化的,所以要把int & ra;ra=a;改为int & ra=a;
引用就是原变量的一个别名,除了名字不一样之外它俩是一样一样一样的,代表的是同一段地址空间,然后下边这几个就是比较这两个一样的东西的值、地址、大小(size)是否一样。==是判断是否相等的运算符,相等返回1,不等返回0,显然都是相等的,所以返回1;1;1

能直接学习C++吗?
4、我不建议用国内的书入门,我见过大部分国内书的内容只是讲了一个更好的 C,不是 C++。我认为初学者应选择一本对语言介绍比较全面、详细的书,以便对 C++ 有一个全面而系统的认识,一知半解是学习的大忌。如果一本自称全面的 C++ 书中缺少 String, Containers, Generic Algorithms, Namespaces, T...

做了一套C++的题,有下面这几道题不懂。请c++达人指教:
2.当然这个题可能有歧义,前提应该是这个类包含默认的构造函数和接收一个参数的构造函数,构造函数的调用是当类需要创建对象的时候,这里 创建对象a的时候以及创建类的数组的时候都需要创建对象,而创建类指针则不用创建对象 所以构造函数调用4次 3.就是说在c++中结构体其实也是被当做类的,与类不同的...

C++初学者程序设计,请指教
LOOP:cout<<"你是否想继续删除学生的信息(1继续,2返回主菜单)"<<endl; cin>>input; switch(input) { case(1):goto loop; case(2):break; default:cout<<"你只能输入1或2,请重新输入!"<<endl; goto LOOP; } } else { cout<<" 找不到 "<<del_name<<"的信息,请重新输入 "<...

我现在学习c语言,学的很烂,希望指教一下
第一:C语言语法结构很简洁精妙,写出的程序也很高效,很便于描述算法,大多数的程序员愿意使用C语言去描述算法本身,所以,如果你想在程序设计方面有所建树,就必须去学它。 第二:C语言能够让你深入系统底层,你知道的操作系统,哪一个不是C语言写的?所有的windows,Unix,Linux,Mac,os\/2,没有一个里外的,如果你不懂...

C++程序有问题运行不了
include<iostream>using namespace std;class Sample{ friend long fun(Sample s);public: Sample(long a){x=a;}private: long x;};long fun(Sample s){ if(s.x<2) return 1; return s.x*fun(Sample(s.x-1));\/\/这里不是-a,是-1}int main(){ int sum=0;...

我是一名刚入门的新手,请各位高手指教一下BASIC语言怎么学
真正掌握了这种观念,看任何语言都不困难了。我总认为,内存就是计算机的七寸命门,懂了这个,也就一通万事通了。另外一个理由,就是大部分语言是用C语法做为蓝本的。熟练的C语言基本功会让你未来的学习变的轻松很多。C++和JAVA 鉴于面向对象理论如此重要,我们必须要学好一种操作对象的语言。如同C是...

用C++程序编写:输入4个整数,要求按由大到小的顺序输出
我试了,你这个程序可以运行,而且结果正确。估计你是只运行没有输入数据。编译-运行后输入四个数,中间用空格隔开,回车,然后就输出排序结果了,只是你这程序输出时没有间隔开,四个数挤一块儿了。你的程序只是将某种排序法的过程一步一步用if语句写了出来,建议学一下循环语句及数组、指针。这样...

请高人指教一下学习的方向
四、学习要主动。 只有积极主动地学习,才能感受到其中的乐趣,才能对学习越发有兴趣。有了兴趣,效率就会在不知不觉中得到提高。有的同学基础不好,学习过程中老是有不懂的问题,又羞于向人请教,结果是郁郁寡欢,心不在焉,从何谈起提高学习效率。这时,唯一的方法是,向人请教,不懂的地方一定要弄懂,一点一滴地积累...

内存指令问题。”written“ 请指教一下。不胜感激!!
(0x后面内容有可能不一样。) 一般出现这个现象有方面的,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。 1、微软IE缓冲溢出漏洞引起 2、内存或虚拟内存地址使用冲突造成 程序的运行需要分配一定的内存地址给程序使用,当程序结束时释放留出空间让给新的程序使用,win是多任务的系统 有时前程序未结束 ...

我想学编程,就是不知道从何入手,有高手请指教!!!
(1)数学基础 从计算机发展和应用的历史来看计算机的数学模型和体系结构等都是有数学家提出的,最早的计算机也是为数值计算而设计的。因此,要学好计算机就要有一定的数学基础,出学者有高中水平就差不多了。(2)逻辑思维能力的培养 学程序设计要有一定的逻辑思维能力,“逻思力”的培养要长时间的实践...

相似回答
大家正在搜