本文共 832 字,大约阅读时间需要 2 分钟。
练习6.21
编写一个函数,令其接受两个参数:一个是int型的数,另一个是int指针。函数比较int的值和指针所指的值,返回较大的那个。在该函数中指针的类型应该是什么?
解答:
练习6.22#includeusing namespace std;int compare(const int& num, int* &p){ return (num > *p ? num : *p);}int main(){ int a = 10, b = 100; int *p = &b; cout << compare(a, p) << endl;}
编写一个函数,令其交换两个int指针。
解答:
#include练习6.23using namespace std;void swapP(int* &p1, int* &p2){ int *tmp = p1; p1 = p2; p2 = tmp;}int main(){ int a = 10, b = 100; int *p1 = &a, *p2 = &b; swapP(p1, p2); cout << *p1 << endl; cout << *p2 << endl;}
参考本节介绍的几个print函数,根据理解编写你自己的版本。一次调用每个函数使其输入下面定义的i和j:
int i = 0, j [2] = {0, 1};
解答:
参考书中的参数列表,进行传参吧。略过吧。
练习6.24
描述下面这个函数的行为。如果代码中存在问题,请指出并改正。
void print(const int ia[10]){
for(size_t i = 0; i != 10; ++i){
cout << ia[i] << endl;
}
}
解答:
这个函数应该是没什么问题的。但传递的参数必须是 int [10]类型的。
传递一个有10个元素的数组,并将每个元素依次打印。
转载地址:http://fwqlb.baihongyu.com/