数组变量传递参数,数组变量的名称代码数组的首地址,而对象的变量的名称却不能代表对象的首地址。传参时不会像数组那样以首地址作为参数传递,而是先将对象中的所有数据进行复制,将复制的数据作为形参传递到调用函数中使用。
1.对象作为函数的参数
class
CFunTest
{
public
:
int
m_nOne;
int
m_nTwo;
};
void
ShowFunTest(CFunTest FunTest)
{
printf
(
"%d %d\r\n"
, FunTest.m_nOne, FunTest.m_nTwo );
}
int
main(
void
) {
CFunTest FunTest;
FunTest.m_nOne = 1;
FunTest.m_nTwo = 2;
ShowFunTest( FunTest );
return
0;
}


由于CFunTest的体积不大,只有两个数据元素,编译器中调用函数传参的过程中分别将对象的两个成员依次压参,也就是直接将两个数据成员当作两个int类型数据,并将他们作为printf的参数。同理,它们也是一份复制数据。
类对象中的数据成员的传参数顺序为:最先定义的数据成员最后压参,最后定义的数据成员最先压参
。