C++ primer第六章课后题6.21和6.22

今天晚上好像吃多了,嗝
慢慢来,会好的
6.21

#include<iostream>
using namespace std;
int Compare(int num, int *p);
int main()
{
	int temp = 9;
	int bigger = Compare(5, &temp);
	cout << bigger << endl;
	system("pause");
	return 0;
}
int Compare(int num, int *p)
{
	return num > *p ? num : *p;
}
//这里指针的类型是int*

6.22

#include<iostream>
using namespace std;
void ExchangePoint(int *&p1, int *&p2);
int main()
{
	int num1 = 18, num2 = 23;
	int *num1_p = &num1;
	int *num2_p = &num2;
	cout << "交换前num1_p指向的对象是:" << *num1_p << endl;
	cout << "交换前num2_p指向的对象是:" << *num2_p << endl;
	ExchangePoint(num1_p, num2_p);
	cout << "交换后num1_p指向的对象是:" << *num1_p << endl;
	cout << "交换后num2_p指向的对象是:" << *num2_p << endl;
	system("pause");
	return 0;
}
//指针的值要改变时也是要引用传递的,这一点被我忽略,结果出来的时候我还在想,我是不是理解错了
//指针交换后,指向的对象就交换了
//虽然结果也是数值调换了,但这个原因是因为指针交换。
//int *&p的读法,&距离p较近,把&p看做是一个整体,p是一个引用,它的类型是int*,
//也就是说p是一个指针变量的引用
//
void ExchangePoint(int *&p1, int *&p2)
{
	int *temp;
	temp = p1;
	p1 = p2;
	p2 = temp;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值