笔记3

作者: dc_3 | 来源:发表于2020-07-11 12:08 被阅读0次

    1函数调用的传值方式:1)按值传递2)地址传递 3)引用传递=指针传递的简化
    2函数重载
    c语言中函数的名称是可以----------------------------------------重复的,根据输入参数的个数/类型/顺序不同,来明确调用一个具体函数。
    合法重载判断标准,输入参数的个数/类型/顺序不同,和返回值无关。
    1)个数区分
    void hello()
    void hello(int a)合法
    void hello(int a,int b)合法
    void hello(float a,int b)合法,类型变了
    void hello(int b,int a)====>不合法重载
    int hello(int b,float a) 合法,顺序变了
    float hello(int b,float a) ===》不合法
    重载特殊现象:1按引用传递 2按默认值传递
    main调用其他函数,执行的操作为
    1)main断电保护2)开辟函数形参空间 3)将实参数据拷贝到形参4)程序进入子函数 5)断点恢复,拿回返回值。
    int a =&b a是指向int型的指针,它也存储到内存中,值为b的地址。而a表示取出a中存储的地址的值,就是b。而&a则表示指针本身的地址,和b就没关系了。(7.2上午第3段)
    引用:给原始变量起别称,不重新开辟内存,简化指针传递的操作。
    3函数的默认值
    void add(int a, int b=20); add(4);
    void add(int a, int b=20,int c); 不合法,默认写在最右边
    4递归函数标准写法:
    1)定义一个返回值c
    2)if 递归终止条件
    c=终止值
    else
    c=递归公式
    return c
    age(int n)
    {
    int c;
    if n==1 c=10;
    else
    c=age(n-1)+2
    return c
    }
    数组与指针:
    数组的初始化方法:开辟在战区,堆区
    int a[10];
    int p=new int[10]; delete [] p
    输入初始值:
    int a[10]={0,1,2,3,4,5,6,7,8,9}
    int a[10]={0,1,2,3}
    int a[2][]={1,2,3,4,5}不合法,必须指定列数。
    int a[10]数组名为此数组的头指针,a是常量,也是数组中第一个元素的位置,a=&a[0]
    a++是错误的,常量无法自加。
    []运算符 a[3]===>
    (a+sizeof(int)3)===>(a+3)
    int *p=a; int *p=&a[0]
    p++
    p++:右结合:(p++)先把p的内容取出,然后指针p加1
    *p p=p+1

    ++p:(++p):先p=p+1,然后取*p
    a和&a区别~

    相关文章

      网友评论

          本文标题:笔记3

          本文链接:https://www.haomeiwen.com/subject/uxibcktx.html