随笔记录

C++中的函数调用入参和返回值均会拷贝一份,不管指针还是值,区别的是指针不管怎么拷贝他的值(指向的地址)不变,所以使用指针能够改变原值。

const 值类型和非值类型可以任意赋值,但是const指针类型和非指针类型却不可以,如:

    int it=3;
    const int it_c=it;
    int tt=it_c;

编译通过


    int it=3;
    const int* it_c=⁢
    int *tt=it_c;

编译错误,Error    3    error C2440: 'initializing' : cannot convert from 'const int *' to 'int *'

此时必须通过强制转换来解决:
    int it=3;
    const int* it_c=⁢
    int *tt=(int*)it_c;

引用外部博客:

1. const在函数返回值前:
返回const值,意思指返回的原函数里的变量的初值不能被修改,但是函数
按值返回的这个变量被制成副本,能不能被修改就没有了意义,它可以被赋给任何
的const或非const类型变量,完全不需要加上这个const关键字.但这只对于内部
类型而言(因为内部类型返回的肯定是一个值,而不会返回一个变量,不会作为左
值使用),对于用户自定义类型,返回值是常量是非常重要的,
X Fuction1 () { return X(); }
const X Fuction2 () { return X(); }
如有上面的自定义类X,和函数Fuction1()和Fuction2(),我们进行如下操作时:
Fuction1()=X(1); //没有问题,可以作为左值调用
Fuction2()=X(1); //编译错误,const返回值禁止作为左值调用.因为左值
把返回值作为变量会修改其返回值,const声明禁止这种修改。
返回的类型为const型不能被修改
对于int来说没有什么意义 返回值只能为右值本身就是const

C++标准规定,函数返回值是右值,但是貌似对于用户自定义类型,返回值是可以做左值的,而对于内建类型,如int,只能作为右值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值