• C++笔记--函数


    • 函数的定义和声明
      •   函数的声明和定义都必须描述相同的类型,但是声明可以不写参数名,定义则必须写参数名,但是他们的参数名字可以不同。
      •   一个局部变量被声明为static,那么这个局部变量将只会被初始化一次,而其他的局部变量则随情况而定进行初始化
      •  1 #include<iostream>
         2 using namespace std;
         3 int f(int );
         4 int f(int a){
         5     while(a--){
         6         static int n=0;//这个静态局部变量只能被修改一次
         7         int x=0;//这个局部变量一直是在被修改
         8 
         9         cout<<"n=="<<n++<<",x=="<<x++<<endl;
        10     }
        11 }
        12 int main(){
        13     f(2);
        14     f(3);
        15 }
    • 函数参数
      •   数组参数:不会也不能按值传递,T[]类型的数组传递时会被转换成T*。
      •   多维数组作为参数:可以利用指针的数组代替。(实际就是指向数组的指针)
    • 默认参数不确定数目的参数 1.如果函数中出现不确定数目的参数,就用。。。表示
      •   默认参数的类型将在函数声明时检查,默认参数一般是被放在最后的,它的后面如果出现非默认的参数,就会报错
      •   `int a(int a,int b=0,int c);//这个是错误的`。
    • 不确定的参数就用。。。表示
    • 指向函数的指针
      •   用函数指针变量调用函数:可以用一个指针变量指向函数,然后调用这个指针变量去调用此函数
        •     
          #include <stdio.h>
          #include <stdlib.h>
          
           int main()
          {
              int max(int,int);
              int (*p)(int,int);//定义P为一个指向函数的指针变量,如果*p没有括号就不是指针变量了
              int a,b,c;
              p = max;//p指向max函数的开头
              scanf("%d,%d",&a,&b);
              c = (*p)(a,b);
              printf("a=%d,b=%d,max=%d
          ",a,b,c);
              return 0;
          }
          
          int max(int x,int y)
          {
              int z;
              if(x>y) z = x;
              else z = y;
              return(z);
          }
      • (1) 指向函数的指针变量的一般定义形式为:

        数据类型 (*指针变量名)(函数参数列表)

          这里数据类型就是函数返回值的类型

    • 总结
      •   
  • 相关阅读:
    [51Nod] 配对
    [Poj] Roads in the North
    【Java学习笔记之二十六】深入理解Java匿名内部类
    【Java学习笔记之二十五】初步认知Java内部类
    【Java学习笔记之二十四】对Java多态性的一点理解
    【Java学习笔记之二十三】instanceof运算符的用法小结
    【Java学习笔记之二十二】解析接口在Java继承中的用法及实例分析
    图论--拓扑排序模板
    hdu 5384 AC自动机
    java大数
  • 原文地址:https://www.cnblogs.com/Kobe10/p/5526101.html
Copyright © 2020-2023  润新知