设void f1(int *m,long & n);int a;long b;则以下调用合法的是

时间:2022-03-30 19:50:00
设void f1(int *m,long & n);int a;long b;则以下调用合法的是

A f1(a,b) B f1(&a,b)
C f1(a,&b)  D f1(&a,&b)

  为什么?
     难道选B,一个是传递地址,一个是传递应用?

7 个解决方案

#1


选B正确,第一个参数传的是指针,第二个参数是一个引用。

#2


当然是 B

指针和引用

#3


选B正确,楼上正解!!!!

#4


B

跑这里来做作业来了?

#5


int a;
int &b=a; // 表示 b 是 a 的引用

#6


不会吧
老大 你是不是要考2级哪???

#7


给楼主几个概念
int* a;  //这是一个int型的指针,指向a
int  b;  //这是一个整形的变量b;

一个变量和一个指针在什么时候可以画等号呢?

&b 就取出了b的地址,换句话说,这个就 等同于指向b的指针

所以以下赋值是合法的:a = &b; &b = a;

取出变量的地址赋给指针。

楼主明白了吧?

至于int & n;
这是一个引用,换句话讲,就是一个别名,一个外号而已。他的类型,还是int型。

#1


选B正确,第一个参数传的是指针,第二个参数是一个引用。

#2


当然是 B

指针和引用

#3


选B正确,楼上正解!!!!

#4


B

跑这里来做作业来了?

#5


int a;
int &b=a; // 表示 b 是 a 的引用

#6


不会吧
老大 你是不是要考2级哪???

#7


给楼主几个概念
int* a;  //这是一个int型的指针,指向a
int  b;  //这是一个整形的变量b;

一个变量和一个指针在什么时候可以画等号呢?

&b 就取出了b的地址,换句话说,这个就 等同于指向b的指针

所以以下赋值是合法的:a = &b; &b = a;

取出变量的地址赋给指针。

楼主明白了吧?

至于int & n;
这是一个引用,换句话讲,就是一个别名,一个外号而已。他的类型,还是int型。