C++ * a和*&a作为函数的参数时有什么区别?
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/29 09:54:28
![C++ * a和*&a作为函数的参数时有什么区别?](/uploads/image/z/8098721-17-1.jpg?t=C%2B%2B+%2A+a%E5%92%8C%2A%26a%E4%BD%9C%E4%B8%BA%E5%87%BD%E6%95%B0%E7%9A%84%E5%8F%82%E6%95%B0%E6%97%B6%E6%9C%89%E4%BB%80%E4%B9%88%E5%8C%BA%E5%88%AB%3F)
xTNP", (]Eݔv[HRAMU$8C(g8
;йR]'{9s=[F<0Ŭ>skP{[E6И̜LLOU8sڞ
nNt1WGߦb*5XĥtfT,6l6z9v&st\HLBIQR,
v
HEk<_1,ӹPV9ufC ٟAeM6 d"u1z$F7x}[ޠ}m;bz,⢮>O|E9>o@Bz˰
\du7i{y,TH5*);B;]E*fEk
>By⯎ _3DFE#̪GZR@*a+P5Wn
тQk6ר1_F~~!ݗ:Z%I(9yA\QndFy`
U9lwldנ5k~0IbC2H
@3~8yQz!"X{x&,~OQ+XŎw`L?veTT戴
ΨI%9XReQ}&Ռ:6؝p/7n2<z_J.qhEoVdr%,͈/(>H
C++ * a和*&a作为函数的参数时有什么区别?
C++ * a和*&a作为函数的参数时有什么区别?
C++ * a和*&a作为函数的参数时有什么区别?
如果你说的是函数的形参,那么
void foo(int* ptr);
是传值调用,比如你这么调用
int a;
int* pValue = &a;
foo(pValue);
这样的情况下,pValue的值是不能被函数foo改变的,也就是pValue肯定是指向a的.
但是如果你这么声明
void foo(int*& ptr);
则是传递引用,那么如果你函数里面
void foo(int*& ptr)
{
ptr = NULL;
}
这样调用过之后,pValue就变成了NULL.而第一种情况pValue是不能被改变的.
引用是C++带来的很重要一个特性,他在很多情况下避免了使用指针.而且,在C++里面,引用是不可以捏造的,比如C你可以很容易弄一个NULL的指针,而引用这不存在NULL引用.
上面的foo函数如果要用C来实现,则必须用指针的指针:
void foo(int** pptr)
{
*ptr = NULL;
}
调用的时候要foo(&pValue)
这种技术很多用在比如定义一个安全删除指针的函数,所谓安全就是,只有当指针为零的时候才执行删除,删除之后,立刻把指针赋值为NULL.
template
inline safe_delete(T*& ptr)
{
if (ptr)
{
delete ptr;
ptr = NULL;
}
}
在C++里面,能不用指针都应该尽量避免,STL里面就大量使用引用.
C++ * a和*&a作为函数的参数时有什么区别?
在Excel中,函数可以作为其他函数的A.公式 B.变量 C.参数 D.常量
VB怎么把a函数,作为一个参数,传递给另一个函数
无功补偿柜中间的参数代表什么意思 那A B C 和下面参数
函数的每一个形式参数就是一个 A.表达式 B.常量 C.变量 D.函数调用
可以作为气体状态参数的量是?A内能B功C热量D表压力
如何在MATLAB中实现函数间的参数传递有例子最好function A和function B在一个m文件里,然后需要在这个m文件中实现A中得到的参数交给B,作为B的运算条件,即调用该m文件的结果已经实现了参数的传
写一个函数,实现和角公式:sin(A+B)=sinAcosB+cosAsinB .函数输入2个参数A,B,返回一个参数.写主函数调用此函数,用户输入A,B,输出和角公式结果.C语言中,求正弦余弦的函数在MATH.H中,名字就是SIN() COS()
书中所说是为函数指针,并且将函数指针作为函数参数,请解释一下下面函数的意思#include#include#includeusing namespace std; int f(const void *a,const void *b)char c[3][4]={cab,cap,can};void main() { qsort((void*)c,3,
14.下面的函数调用语句中fun函数的参数个数是 fun(fun(a,a+b,a+c),(a+b+c),25);14.下面的函数调用语句中fun函数的参数个数是fun(fun(a,a+b,a+c),(a+b+c),25);A) 3 B)4 C)5 D)6
求两个矩阵的和在主函数中定义两个矩阵a[4][4]和b[4][4],编写子函数add_matrix(int x[4][4],int[4][4])可以将相加的值放在矩阵x 对应元素中,在主函数中调用add_matrix(a,b),利用数组名作为函数的参数,实
C++:类模板的模板参数___A.只可以作为数据成员的类型 B.只可以作为成员的返回类型C.只可以作为成员函数的参数类型 D.以上三者都可以
已知函数f(x)=x^3-ax^2-bx+c在x=-1时,有极大值7,x=3时有极小值,求a,b,c和函数的极
比如函数A:function funcA(a){alert(a)}; 怎么把函数A作为函数B的一个参数,在B函数内执行呢?函数B怎么定义呢?B:function funcB(var1,var2,函数A){//执行函数A(这个怎么写?)}是指Javascript的代码,最好能举
引用作为函数的参数有什么优缺点
数组是不是不可以作为realloc函数中的指针参数输入吗?例如:void main() { int a[10]
高中数学排列与组合问题(以下问题只答会的就行,最好有步骤)(1)从0、1、2、3这四个数中选三个不同的数作为函数f(x)=ax^2 +bx+c中的参数a b c,可组成不同的一次函数共有----个,不同的二次
函数y=(cosx-a)²+1,当cosx=a时有最小值,当cosx=-1时有最大值,则a的取值范围是( ) A.[ -1,0] B.[ -1,1]C.(-∞,0] D.[0,1]