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) 指向函数的指针变量的一般定义形式为:

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

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

  • 总结
    •   
原文地址:https://www.cnblogs.com/Kobe10/p/5526101.html