C++ Primer 学习笔记——函数(二)

来源:互联网 发布:js 判断div是否显示 编辑:程序博客网 时间:2024/05/29 07:30
//6.21#include<iostream>using std::cout;int compare(int x, int *p){    return x > *p ? x : *p;}int main(){    int i = 10, j = 20;    int *p = &j;    cout << compare(i, p);    return 0;}
//6.23#include<iostream>#include<vector>using namespace std;void print1(int a[], int n){    for (int i = 0; i != n; ++i)    {        cout << a[i];    }}void print2(int *beg, int *end){    while (beg != end)    {        cout << *beg++;    }}void print3(int (&a)[10]){    for (auto i : a)    {        cout << i;    }}int main(){    int arr[10] = { 0 };    print1(arr, end(arr) - begin(arr));//end()与begin()都在std命名空间中。在标准库中定义    cout << endl;    print2(begin(arr), end(arr));    cout << endl;    print3(arr);    return 0;}

main 带参数
以下代码。。。。失败了。。。。
这是为什么呢。

#include<iostream>using namespace std;int  main(int argc, char* argv[]){    int   i;    for (i = 0; i<argc; i++)        cin >> argv[argc];    cin >> i;    return   0;}

含有可变参数的函数
和vector 一样,initializer_list 也是一种模板类型,对象中的元素永远是常量,

//6.27#include<iostream>using namespace std;int  f(initializer_list<int> num){    int sum = 0;    for (auto &i : num)    {        sum += i;    }    return sum;}int main(){    initializer_list<int> num1{ 10, 20, 30 }, num2{ 0, 1, 2, 3, 4 };    cout << f(num1) << endl        << f(num2);    return 0;}

以上程序,,类型是vector也可实现。。。。

返回值

0 0