首页 > 试题广场 >

关于引用以下说法错误的是()。

[单选题]
关于引用以下说法错误的是()。
  • 引用必须初始化,指针可以不初始化
  • 引用初始化以后不能被改变,而指针可以改变指向
  • 不存在指向空值的引用,但是存在指向空值的指针
  • 一个引用可以看作是某个变量的一个“别名”
  • 引用传值,指针传地址
  • 函数参数可以声明为引用或指针类型
B
声明一个引用的同时,如果不是作为函数的参数或返回值,必须进行初始化,明确引用是哪个变量的别名,引用一旦成为某个变量的别名后,在程序运行过程中不可改变这种指代关系。
发表于 2015-01-17 16:59:50 回复(1)
b的意思,前半部分,只是该变量别名,不能变成其他变量别名意思,这么理解就通了~
发表于 2021-03-24 19:27:44 回复(0)
引用的底层不是用的指针吗,应该是E吧!!
发表于 2015-04-01 13:34:09 回复(0)
B
发表于 2015-01-11 17:13:50 回复(0)
首先,E明显是不对的。引用也是传递的地址,否则你在函数内部操作的就不可能是实参,而只能是形参。实参的内容是不会改变的。其次B项说法不明确,“引用初始化以后不能被改变 ”有歧义。如果已有&a = b; 则不能再有&a = c;  若b = 2; &a = b; a = 5;则是可以的,b的值也将被赋为5。考虑到B项后面又说:“指针可以改变所指的对象 ”,该题考察的应该是前一种意思。综上所诉,选E
编辑于 2017-03-27 20:26:09 回复(5)
引用是一个对象的别名,主要用于函数参数和返回值类型,符号X&表示X类型的引用
1.首先,引用不可以为空,但指针可以为空。前面也说过了引用是对象的别名,引用为空——对象都不存在,怎么可能有别名!故定义一个引用的时候,必须初始化。因此如果你有一个变量是用于指向另一个对象,但是它可能为空,这时你应该使用指针;如果变量总是指向一个对象,i.e.,你的设计不允许变量为空
2.其次,引用不可以改变指向,对一个对象"至死不渝";但是指针可以改变指向,而指向其它对象。说明:虽然引用不可以改变指向,但是可以改变初始化对象的内容。
3.再次,引用的大小是所指向的变量的大小,因为引用只是一个别名而已;指针是指针本身的大小,4个字节。

发表于 2015-08-20 08:57:10 回复(0)
E 引用传地址
发表于 2015-03-25 21:57:51 回复(0)
垃圾题
发表于 2019-06-18 15:52:14 回复(1)
E是不对的,引用传的也是地址
B的说法也是不严谨的,指针并不一定可以改变所指向的对象例如
char* s = “aaa”;
const int * p;
编辑于 2015-09-14 11:39:44 回复(1)
传指针的本质是传值,传递的是指针的地址。传引用的实质上是传地址,传递的是变量的地址。
发表于 2021-12-31 10:55:54 回复(0)
函数中,只有引用传地址,而指针也是传值的,只不过使用指针可以达到传址的效果,不是吗?
发表于 2018-05-02 00:55:05 回复(0)
指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。
发表于 2016-02-21 13:23:48 回复(2)
E
指针是对象的别名,它和它所指向的对象在内存中的地址是同一个地址,所以传递引用实际上是传递地址。
发表于 2015-03-31 19:18:08 回复(0)
答案:B
引用初始化以后不能改变引用的对象,但是引用对象的内容可以改变
编辑于 2015-06-05 18:01:21 回复(0)
引用传递的地址
发表于 2022-05-16 23:05:56 回复(0)
引用是不能被改变的,但是引用所绑定的对象可以被改变,引用也是传地址,故选E。
发表于 2018-11-27 15:33:05 回复(0)
mark。引用和指针传的都是地址,否则不会影响实参。这题我做错了。
发表于 2017-01-15 17:14:42 回复(0)
答案:E
引用其实是一个常指针
发表于 2015-03-31 20:06:00 回复(0)
B 错在 指针如果指向常量字符串,不能改变其内容
发表于 2015-03-25 21:29:38 回复(0)
引用传的也是地址
发表于 2023-10-22 23:26:29 回复(0)