您的位置:首页 > 汽车 > 时评 > 郑州同济医院曝光_企业网页有免费的吗_服装营销方式和手段_网站制作费用多少

郑州同济医院曝光_企业网页有免费的吗_服装营销方式和手段_网站制作费用多少

2025/2/27 17:26:59 来源:https://blog.csdn.net/weixin_74154742/article/details/144252508  浏览:    关键词:郑州同济医院曝光_企业网页有免费的吗_服装营销方式和手段_网站制作费用多少
郑州同济医院曝光_企业网页有免费的吗_服装营销方式和手段_网站制作费用多少

一、new-delete以及malloc-freequbie

1.new:
        (1)运算符,没有返回值概念,但开出来空间有类型,不需要设置大小
        (2)可以在堆区动态开辟空间,并且可以默认执行构造函数

2.delete:运算符,后面只需更上指针变量名,默认调用析构函数,后面只需跟上指针变量

3.malloc:
        (1)函数,参数需要传入开辟空间字节大小,返回值为void*——通用类型指针,所以赋值需要强制转换
        (2)可以在堆区动态开辟空间,但是没有走构造函数,就没有赋值
4.free:函数,需要传递通用类型指针做参数

二、值传参-指针传参 -引用传参

值传参:
1.值的拷贝,函数调用的时候,形参数有一个和实参数据字节相同的变量(执行函数过程中产生临时变量)

2.所有函数内逻辑对数据产生变化都是基于这个临时变量(局部变量),所以函数结束以后,数据修改不会保留,函数运行结束,会收回所有临时变量
 //值传参
void swap(int a,int b)
{
    int temp=0;
    temp=a;
    a=b;
    b=temp;
    cout<<"值传参:x="<<a<<" y="<<b<<endl;
}
    

指针传参:
1.地址的拷贝,函数调用时,32位系统下无关数据类型只占4个字节,64位系统8个字节

2.因为拷贝的是地址,当操作逻辑修改数据也是修改原地址上的数据,所以当函数结束以后,会收回所有临时变量,但原地址上的数据修改已经发生保留下来
        //指针传参
void swap2(int *a,int *b)
{
    int temp=0;
    temp=*a;
    *a=*b;
    *b=temp;
    cout<<"指针传参:x="<<*a<<" y="<<*b<<endl;
}

 结论:

1.指针传参比值传参更加节省内存

2.指针传参可以保留函数所有操作的修改变化,但值传参不会

引用传参
    int x=100;
    //引用类型
    //特殊变量,可以认为是一个变量的别名
    int &y=x;

    //普通变量赋值与上面的区别:引用y不占空间,但z会占空间
    int z=x;
  //引用传参(C++推荐写法)
//语法和值传参一样,但结果可以和指针传参一样
void swap3(int &a,int &b)
{
    int temp=0;
    temp=a;
    a=b;
    b=temp;
    cout<<"引用传参:x="<<a<<" y="<<b<<endl;
}

三、函数重载

函数重载:又叫函数多态,体现多态性
1.形参的类型不同
2.形参的顺序不同
3.形参的数量不同
4.形参的数量和类型不同
    例如:(类型不同)
void swap2(char a,int *b);
void swap2(int a,int b);

四、内联函数 

//内联函数:没有实际函数空间,在调用函数的地方插入逻辑代码
//不能写复杂的逻辑,循环、switch、数组、动态开空间、递归都不可以用
inline Max(int a,int b)
{
    return a>b?a:b;
}

小知识点:

//带默认值,加默认值从右往左写
int sum(int a,int b,int i=100)
{
    return ++i;
}
 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com