const

 

const常量存在于程序的数据段,并在堆栈中分配了空间。const 常量是一个RUN-Time的概念,它在程序中确实的存在着并可以被调用、传递。

const的作用:

  1 const用于定义常量:const定义的常量编译器可以对其进行数据静态类型安全检测。

  2 const修饰函数形式参数:当输入参数为用户定义类型和抽象数据类型时,将“数传递”改为“const&传递”可以提高效率。

    如:

    void fun(A a);

    void fun( A const & a);

    第二个函数的效率高,因为其减少了第一个函数存在的临时对象的构件、复制、析构过程都将消耗时间。其不用产生临时对象。

  3 const修饰函数的返回值:如果给“指针传递”的函数返回值加const,则返回值不能直接修饰,

    且该返回值只能被赋值给const修饰的同类型指针。

    如:

    const char*GetChar(void){};

    char*ch=GetChar();  //error

    const char*ch=GetChar();  //correct

  4 const 修饰类的成员函数(函数定义体):任何不需要修改数据成员的函数都应该使用const修饰,

    这样即使不小心修改了数据成员或调用了非const成员函数,编译器也会报错。

    如:

    int GetCout(void) const;

 

#include<stdio.h>

int main()

const int x=1;

int b=10;

int c=20;

const int *a1=&b;     //常量指针

int *const a2=&b;     //指针常量

const int *const a3=&b;

x=2;    //错,x为常量。

a1=&c;   //对,a1为常量指针,其所指:指向常量的指针,指针所指向的内容不能改变,但是可以改变其所指向的地址。

*a1=1;    //错,指针指向的值被改。

a2=&c;    //错,指针是常量,其一旦确定了,就不能再改变。

*a2=1;    //对,其指向的地址虽然不能变,但地址所代表的内容,可以改变。

a3=&c;    // 错。

*a3=1;    //错。

return 0;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值