zoukankan      html  css  js  c++  java
  • 学习C++.Primer.Plus 7 函数

    1. C++的返回值类型不能是数组
    2. 函数原型中的变量名相当于点位符,因此不要求提供变量名。
      void cheers(int);
    3. C++中不指定参数列表时就使用活力号:
      void saybye(...);

      通常,仅当与接受可变参数的C函数(如printf())交互时才需要这样做。

    4. 静态类型检查:在编译阶段进行的原型化。
    5. 函数调用时将参量(实参)传递给参数(形参,函数定义中 用于接收参数而声明的变量)。
    6. cin>>输入时跳过前面的空格和换行符。
    7. 当且仅当用于函数头或函数原型中时,int arr[] 和 int *arr 才相同,都表示指针。
    8. 要传递数组类型 和 元素数量时,要分成两个参数来传递,而不能用方括号直接传:
      void fillArray( int arr[], int size);

      而不要使用下面的方法:

      void fillArray(int arr[size]);
    9. 除了传递数组长度size以外,还可以传递两个指针来标示区间,第一个为指向第0元素,第二个指向最后一个元素的后面。
    10. 在声明或定义中用const标记形参数组时,表示不能在函数中使用该形参修改数组,而不代表原始数组的const与否。C++声明中const double ar[] 表示const double *ar.
      void fillArray(const int arr[], int);
      或
      void fillArray(const int *arr, int)

      此时,const类型的地址只能赋给const指针。

    11. 当把形参的指针定义为const时,只能防止修改指针指向的值,不能防止修改指针的值:int *const pt 定义了不可修改地址的指针:
      int age = 24;
      const int *pt = &age;//不能用pt修改age的值
      int *const pt = &age;//可以用pt修改age的值,但pt只能指向age
      const int *const pt = &age;//pt只能指向age,且不能用pt修改age的值
    12. 注意:只能在指针指向基本类型时(如数组),才可以使用const限定符,当它们是指针或指向指针的指针时,则不能使用const。比如下面的二维数组,表示的就是指针。
    13. 调用函数传递二维数组:
      1. 二维数组的数组名本身是指针,表示的是指向指针(列)的指针
        int sum(int (*arr) [4], int size);//arr指针指向另一个指针(指向长度为4的int数组的指针)

         必须加括号,否则就成了长度为4的数组(数组里装的是指针),如下:

        int *arr [4];//表示长度为4的指针数组

        也可以这样声明:

        int sum( int arr[][4], int size);
      2. 在声明参数arr时,没有使用const,因为这种技术只能用于指向基本类型的指针,而arr是指向指针的指针。
    14. 不以空值字符结尾的char数组只是数组,而不是字符串。
    15. 结构可以直接像普通变量那样直接按值传递。但如果结构非常大时,可以按引用传递 或  传递结构的地址。
    16. while(cin >> x >> y)
      {
          ...
      }
    17. 函数指针
      1. 函数名表示的是函数的地址:假设think是一个函数,process调用think:
        process(think);
      2. 函数指针的声明如下:
        double pam(int);//函数声明
        double (*pf) (int);//函数指针的声明

        需要带括号, 而不能用下面的:

        double *pf (int);//声明了一个返回值为double指针的函数
      3. 此时(*pf)和pam是相同的。
  • 相关阅读:
    Mysql 视图用途、使用场景、性能问题及使用注意事项
    深入解析MySQL视图VIEW
    delete语句的基本用法
    update语句基本用法
    mysql插入中文数据变成问号怎么处理
    MySQL数据表中有自增长主键时如何插入数据
    INSERT INTO语句的基本用法
    mysql HAVING用法
    mysql关于group by的用法
    python模拟鼠标拖动教程
  • 原文地址:https://www.cnblogs.com/yuantf/p/3171874.html
Copyright © 2011-2022 走看看