存在以下定义,int a=5,b=5,*c=&a,&d=b;为什么赋值语句a=b+d;正确,求详解
来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/07/03 08:14:51
存在以下定义,int a=5,b=5,*c=&a,&d=b;为什么赋值语句a=b+d;正确,求详解
先说一下引用,
引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样.
引用的声明方法:类型标识符 &引用名=目标变量名;
【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名
说明:
(1)&在此不是求地址运算,而是起标识作用.
(2)类型标识符是指目标变量的类型.
(3)声明引用时,必须同时对其进行初始化.
(4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名.
ra=1; 等价于 a=1;
(5)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元.故:对引用求地址,就是对目标变量求地址.&ra与&a相等.
这是主要也是很简单的几点,要理解透彻!
另外引用还有如下的规则:
(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化).
(2)不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL).
(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象).
下面我通俗的讲一下这道题,
int &d=b;其实就是给b取了个别名d,打个比方,小明的年龄是10岁,小明的小名叫小强,我说我的年龄是小明和小强年龄的和,其实就是说我的年龄是小明的年龄+小明的年龄,小强就是小明!
这里也是一样的道理,a=b+d等价于 a=b+b;b和d是同一个变量!你说a=b+b合法不合法呢?答案很显然,这是正确的!
一定要弄清楚引用的含义!因为很多地方我们都必须使用引用来直接获取参数,从而避免创造副本,难以返回参数值等情况.建议再看一看书,书上写的应该比较详细!如果觉得无法理解,建议找老师当面讲解!因为这真的是非常重要的知识点.
引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样.
引用的声明方法:类型标识符 &引用名=目标变量名;
【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名
说明:
(1)&在此不是求地址运算,而是起标识作用.
(2)类型标识符是指目标变量的类型.
(3)声明引用时,必须同时对其进行初始化.
(4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名.
ra=1; 等价于 a=1;
(5)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元.故:对引用求地址,就是对目标变量求地址.&ra与&a相等.
这是主要也是很简单的几点,要理解透彻!
另外引用还有如下的规则:
(1)引用被创建的同时必须被初始化(指针则可以在任何时候被初始化).
(2)不能有NULL引用,引用必须与合法的存储单元关联(指针则可以是NULL).
(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象).
下面我通俗的讲一下这道题,
int &d=b;其实就是给b取了个别名d,打个比方,小明的年龄是10岁,小明的小名叫小强,我说我的年龄是小明和小强年龄的和,其实就是说我的年龄是小明的年龄+小明的年龄,小强就是小明!
这里也是一样的道理,a=b+d等价于 a=b+b;b和d是同一个变量!你说a=b+b合法不合法呢?答案很显然,这是正确的!
一定要弄清楚引用的含义!因为很多地方我们都必须使用引用来直接获取参数,从而避免创造副本,难以返回参数值等情况.建议再看一看书,书上写的应该比较详细!如果觉得无法理解,建议找老师当面讲解!因为这真的是非常重要的知识点.
存在以下定义,int a=5,b=5,*c=&a,&d=b;为什么赋值语句a=b+d;正确,求详解
存在如下定义:int a=5,b=5,*c=&a,&d=b,下列赋值语句正确的是 A a=d+
下列赋值语句正确的是A.B+C=A B.5=A=B C.-B=A D.A=B+C
下列赋值语句正确的是?A .a+b=c B.c=a+b C .-a=b D .5=a+b
以下合法的赋值语句是 A.x=y=100 B.d-- C.x+y D.c=int(a+b)
3、若有以下定义和语句:int a,b,c;scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);为了使1,
7、设有定义 int a=0 ,b=0,c=0; 以下正确的赋值语句是 A) a=b=58 B)b+c=a+b; C)c
设有定义int a=5,b; 赋值使b为9的语句是( ) A) b = ++a+4; B) b = (a++)+3; C
设变量已正确定义并赋值,正确的C语言表达式是:A.a=a+10 B.a=b=c++ C.int(12.3%5) D.a=
下列可作为C语言赋值语句的是()A.3+5; B.a=b=6; C.i+=1; D.y=int(x)
若变量已正确说明为int类型,要通过语句scanf("%d %d %d ",&a,&b,&c);给a赋值3,b赋值5,c
下列赋值语句正确的是 .A、A=B+C B、B+C=A C、-B=A D、2=A+B