第六章 6.2.4节练习

来源:互联网 发布:ubuntu 15.10 清华源 编辑:程序博客网 时间:2024/06/07 02:15

练习6.21

编写一个函数,令其接受两个参数:一个是int型的数,另一个是int指针。函数比较int的值和指针所指的值,返回较大的那个。在该函数中指针的类型应该是什么?

解答:

<pre name="code" class="cpp">#include <iostream>using 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;}


练习6.22

编写一个函数,令其交换两个int指针。

解答:

#include <iostream>using 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;}

练习6.23

参考本节介绍的几个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个元素的数组,并将每个元素依次打印。

0 0