zoukankan      html  css  js  c++  java
  • 函数(一)

    五、函数

    1.指针形参  void SetR(int * pi) 【局部副本】

    2.应用形参   void change( int &a,int &b) 【原数据】

      使用引用形参可以返回额外的信息。

    3.传递指向指针的引用  void fun( int *&V)

    4.vector和其他容器类型的形参

      通常函数不应该有容器类型的形参,调用普通的非引用类型的vector形参函数会复制vector中每个元素。

      从避免复制的角度看,应该将类型定义为引用。实际中更倾向于通过传递指向容器中需要处理的元素的迭代器来传递容器。

     void printff(vector<int>::const_iterator start,vector<int>::const_iterator end)

    5.数组形参

      处理数组的函数通常通过操纵指向数组中元素的指针来处理数组。

    (1)数组形参的定义(非引用)

    如果定义函数输出int型数组的值。

    //函数操纵的是指向数组元素的指针

    void printFun(int*){}            void printFun1(int[]){}

    //在传递数组时,实参是指向数组第一个元素的指针,形参复制的是指针的值(副本)

    //函数操纵的是指针的副本,因此不会改变实参的指针。

    //函数可通过该指针(副本)改变其指向的数组,通过指针形参做的改变都在改变数组元素本身。

     

    void f (constint *) //不需要改变其元素时,声明为const

    (2)传递给函数的数组处理

      1.在数组本身放置一个结束标记来监测。(egnull

      2.使用标准库规范【分别传参数组第一个元素和最后一个元素下一个位置的指针。】

      3.显示传递数组大小的形参。

       23的例子。

    void printV(char * start,char * end)

    {

        while (start !=end)

        {

            cout<<*start++<<endl;

        }

    }

     

    void printV1(constint *pv,size_tlen)

    {

        for (size_t i = 0; i < len; i++)

        {

            cout<<pv[i]<<endl;

        }

    }

     

    void main()

    {

        char * str="china";

        printV(str,str+5);

     

        int nums[]={1,4,6,8,9};

        printV1(nums,sizeof(nums)/sizeof(*nums));

        system("pause");

    }

  • 相关阅读:
    codeforces_1075_C. The Tower is Going Home
    leetcode_Stone Game_dp_思维
    leetcode_Counting Bits_dp
    Divide and Conquer_1.最大连续子数组
    python_MachineLearning_感知机PLA
    IIS中启用gzip压缩(网站优化)
    asp.net运行机制图
    asp.net 的那点事(2、浏览器和一般处理程序)
    asp.net 的那点事(1、当用户在浏览器地址栏输入了网址后,发生了什么?)
    android环境搭配 运行android sdk manager时出现错误问题解决
  • 原文地址:https://www.cnblogs.com/hometown/p/3204243.html
Copyright © 2011-2022 走看看