c++怎么把参数传到html,C++ 把引用作为参数 | 菜鸟教程

1、单纯的传值

#include

using namespace std;

// 函数声明

void swap(int x, int y);

int main ()

{

// 局部变量声明

int a = 100;

int b = 200;

cout << "交换前,a 的值:" << a << endl;

cout << "交换前,b 的值:" << b << endl;

/* 调用函数来交换值 */

swap(a, b);

cout << "交换后,a 的值:" << a << endl;

cout << "交换后,b 的值:" << b << endl;

return 0;

}

// 函数定义

void swap(int x, int y)

{

int temp;

cout << "调用的函数中的交换:"<

cout << x <

cout << y <

temp = x; /* 保存地址 x 的值 */

x = y; /* 把 y 赋值给 x */

y = temp; /* 把 x 赋值给 y */

cout << x <

cout << y <

return;

}单纯的传值,只在调用的函数中改变值,原来的值并没有改变:

100

200

200

100

交换后,a 的值:100

交换后,b 的值:200

2、传引用

#include

using namespace std;

// 函数声明

void swap(int& x, int& y);

int main ()

{

// 局部变量声明

int a = 100;

int b = 200;

cout << "交换前,a 的值:" << a << endl;

cout << "交换前,b 的值:" << b << endl;

/* 调用函数来交换值 */

swap(a, b);

cout << "交换后,a 的值:" << a << endl;

cout << "交换后,b 的值:" << b << endl;

return 0;

}

// 函数定义

void swap(int& x, int& y)

{

int temp;

cout << "调用的函数中的交换:"<

cout << x <

cout << y <

temp = x; /* 保存地址 x 的值 */

x = y; /* 把 y 赋值给 x */

y = temp; /* 把 x 赋值给 y */

cout << x <

cout << y <

return;

}

作为形参的引用会指向形参,类似于指针,调用函数后,实现了真正的交换:

100

200

200

100

交换后,a 的值:200

交换后,b 的值:100

3、传指针

#include

using namespace std;

// 函数声明

void swap(int *x, int *y);

int main ()

{

// 局部变量声明

int a = 100;

int b = 200;

int *c,*d;

c=&a;

d=&b;

cout << "交换前,a 的值:" << *c << endl;

cout << "交换前,b 的值:" << *d << endl;

/* 调用函数来交换值 */

swap(c, d);

//swap(&a,&b);

cout << "交换后,a 的值:" << *c << endl;

cout << "交换后,b 的值:" << *d << endl;

return 0;

}

// 函数定义

void swap(int *x, int *y)

{

int temp;

cout << "调用的函数中的交换:"<

cout << *x <

cout << *y <

temp = *x; /* 保存地址 x 的值 */

*x = *y; /* 把 y 赋值给 x */

*y = temp; /* 把 x 赋值给 y */

cout << *x <

cout << *y <

return;

}

传指针需要先将变量的地址赋值给声明的指针,增加了变量的个数,因此引用比指针要简洁一些。

交换前,a 的值:100

交换前,b 的值:200

调用的函数中的交换:

100

200

200

100

交换后,a 的值:200

交换后,b 的值:100

注意:

void swap(int *x, int *y)

{

int *temp;

cout << "调用的函数中的交换:"<

cout << *x <

cout << *y <

temp = x; /* 保存地址 x 的值 */

x = y; /* 把 y 赋值给 x */

y = temp; /* 把 x 赋值给 y */

cout << *x <

cout << *y <

return;

}

这种交换指针指向的方式是不能达到实际的交换的,因为函数的结束、返回,这两个指针本身就消失了(它们的值并不会传回到 main() 函数中)所以,最后的结果没有交换。因此应该通过修改指针所指向的内容的值,从而达到交换,而不是通过采用交换指针的指向。

100

200

200

100

交换后,a 的值:100

交换后,b 的值:200

VALUE

VALUE

phj***89905610@163.com6个月前 (12-19)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值