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\n",a,b,c);
            return 0;
        }
        
        int max(int x,int y)
        {
            int z;
            if(x>y) z = x;
            else z = y;
            return(z);
        }
    • (1) 指向函数的指针变量的一般定义形式为:

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

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

  • 总结
    •   
时间: 2024-10-12 16:08:38

C++笔记--函数的相关文章

0715-----C++Primer听课笔记-----------函数指针 、单例模式

1.函数指针 1.1 普通成员函数指针包含类名信息以及const属性,指向具体函数是必须加上&符号. #include <iostream> using namespace std; class Test{ public: void setValue(const string &s, int a){ s_ = s; a_ = a; } void print() const{ cout << s_ << endl << a_ <<

c语言笔记————函数的作业

#include <stdio.h>#include <stdlib.h>#include <string.h>void maoPao( float num[]){ for (int i =0; i<10-1; i++) {        for (int k=0; k<10-1-i; k++) {            if (num[k]>num[k+1]) {                num[k]=num[k]+num[k+1];     

php课外笔记--函数可变参数列表的实现

php课外笔记--函数可变参数列表的实现 php的函数方面非常强大,但对于一些php新手来说,理解有部分困难,不能完全熟练的掌握. php培训教程中,介绍一部分函数可变参数列表的实现方法: PHP函数可变参数列表的实现方法主要是利用func_get_args().func_num_args().func_get_arg()这三个系统函数来实现的,其中func_get_args()函数以数组的形式获得参数列表,具体用法参看手册. PHP函数可变参数列表代码如下: < ?php    /*   函数

F# 学习笔记(函数基础)

因为只是笔记,所以只记录自己觉得要注意与需要理解的地方,其他就不记了 函数定义上F#有自己的写法: [<EntryPoint>] let main argv = let f1 = fun x -> x * x - 2 * x let f2 x = let x1 = x - 2 x * x1 printfn "%i" (f2 10) printfn "%i" (f1 10) 0 f1是很好理解的,因为基本上现在支持lambda表达式的基本都是第一种写

C#学习笔记---函数 的理解及总结(入门级)

*内容可能会有不到位的地方,希望小伙伴们顺便找出来,共同在IT这个“坑“里越陷越深,做一个有深度的程序”猿“:深夜发博只图进步与...你懂得!! 1)函数: 主要的功能就是为了让代码结构更加良好.函数是——实现相对独立功能的程序代码模块(程序段).函数的四要素:函数名,输入,输出,运算 *有的函数没有输入,函数名后的小括号中可以不写东西,但必须要有小括号.*有的函数没有返回,在函数名的左侧不要写数据类型了,写void即可.(只是输出要显示,不往“Main”的函数里代入.直接输出用void) 函数

Python学习笔记-函数篇

定义 返回单值 def my_abs(x): if x >= 0: return x else: return -x 返回多值 返回多值就是返回一个tuple import math def move(x, y, step, angle=0): nx = x + step * math.cos(angle) ny = y - step * math.sin(angle) return nx, ny 空函数 def nop(): pass 指定默认参数 必选参数在前,默认参数在后.默认参数需指向不

GO学习笔记 - 函数名前面是否有输入参数肯定是不一样的!!

在刚接触GO语言时候,我相信你也会有这种困惑,为什么有的函数名前面有输入参数,而一些却没有,它们是否有差别?确实有差别,没有输入参数,是一般的函数:有输入参数,是结构的方法,输入参数叫做"方法接收者"!GO语言没有类,方法都定义在结构上了!! 官方教程: 函        数:https://tour.go-zh.org/basics/4 结构体方法:https://tour.go-zh.org/methods/1 实例代码: main.go : 引入了"sunylat/de

犀牛笔记--函数

1 1.函数作为参数传给其他函数: 2 data.sort(function(a,b){return a-b}) 3 //关于数组的sort函数,其回调函数返回负值,a在b之前 4 //正值,b在a之前 5 6 2.函数定义好后立即调用 7 var temp=(function(x){return x*x})(10); 8 9 function foo(){};//函数声明,可以提前 10 var foo=function(){};//表达式定义函数,不能提前 11 12 3.JAVASCRIP

Lua学习笔记--函数初探

感觉学习语言的话,函数是个重头戏.来看一下Lua的函数是神马样纸的东东! 一.简单的函数例子 --一个简单的函数:阶乘 function factorial(num) if num == 0 then return 1 else return num * factorial(num - 1) end end 恩,这就是个函数.function关键字,说明这是个函数,然后是函数名,后面跟的是参数列表,使用括号括起来.函数的结尾需要一个end关键字,表明函数结束了. 下面看以下怎么调用: --一个简

F# 学习笔记(函数基础3)

递归函数: 在F#中一般不允许调用自身,而只能通过关键字rec来声明其为递归函数: 最大公约数的应用,使用辗转相除法: [<EntryPoint>] let main argv = let rec gcd(a,b) = if a = 1 then b elif b = 1 then a elif a = b then b else if a > b then gcd(a-b, b) else gcd(a,b-a) (72,54) |> gcd |> printfn "