当前位置:C++技术网 > 资讯 > C++中函数按值传递与按引用传递小解2

C++中函数按值传递与按引用传递小解2

更新时间:2015-10-26 13:13:04浏览次数:1+次

    在《C++中函数按值传递与按引用传递小解》一文中,有两个程序代码,在这里我详述下代码的意思,在头文件中有#include "vector"头文件,这是C++标准头文件库里的,也就是我们常说的STL,这个头文件就是向量,向量是一个动态的数组。接着我们看第二个函数的声明,在此函数声明中,你看看它的参数列表是这样的:
std::vector<int> v;
    这句代码的意思就是定义一个变量v。在C++中有几种容器类型,容器类型是可以容纳一组对象的数据结构。其中有一种容器类型就是vector。所有的C++容器都需要一个元素类型,及存储在容器中的对象的类型。在本例中,这个元素类型为int。在尖括号中指明元素类型:<int>。这告知编译器v变量是一个vector容器,且该vector存储整数,然后我们看第四个函数声明代码中的for语句在这里我们看到了有一个std::ostream_iterator<int>,这句代码就是定义一个迭代器。那么什么是迭代器呢?在一个数组中,通过提供开始位置(如v.begin())和超出末端的下一个位置(v.end())指定的一个序列。在这个序列中,所有的位置都被称为"迭代器"。迭代器是一个对象。可以指向序列中的一个元素。所以这句话的意思就是,在for语句中,我们定义了一个vector容器,存储整型类型,并且定义了一个迭代器对象,该对象有个元素i,迭代器对象元素i在v中迭代增加。代码就是到这里了,我主要就是怕有人看不懂这些代码,我写的两个程序例子都是stl标准,你看不懂很正常,stl可能你都没有接触过。所以我才专门写篇文章解释程序。
    下面说点注意事项,在程序代码中,你可能注意到了std这个东西,如果你写过C++代码,在你的程序中,估计没出现过他,除了在刚开始部分using namespace std;你写下了这个语句。为什么在我的程序代码中,老是出现std呢?其实就是因为我之前没有写上这条语句using namespace std;std是标准程序库,在这个标准库中,包含了很多的头文件,当你要用某个头文件时,你就需要声明std了。说个实例,当我刚开始用VS写代码时,我就定义了某个对象,当时直接报错,我就纳闷了,没错啊!后来随便加了个std,好家伙,通过编译了,原来VS编译器本身并没有包含我所定义的对象的头文件,我就得靠std引用进来。因此,如果你用VS编译的话,你也得注意这个细节。
    最后就是按值返回的最后一点总结了,我说了,因为变量的生命周期问题,所以不能正常返回我们期望的值,但是你可以就一个关键字return;就好了,这个关键字就能解决所谓生命周期的问题,有了它,当程序代码执行到这个关键字的时候我们就能正常的返回函数的调用点了。