const字符

 

 

C中CONST的使用:

  const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。

C中常用:#define 变量名变量值定义一个值替代,然而却有个致命缺点:缺乏类型检测机制,这样预处理在C++中成为可能引发错误的隐患,于是引入const.

  const使用:

1. 用于指针的两种情况:const是一个左结合的类型修饰符.

  int const *A; //A可变,*A不可变
  int *const A; //A不可变,*A可变

2.限定函数的传递值参数:

  void function(const int Var); //传递过来的参数在函数内不可以改变.

3.限定函数返回值型.

  const int function(); //此时const无意义

  const myclassname function(); //函数返回自定义类型myclassname.

4限定函数类型.

  void function()const; //常成员函数, 它不改变对象的成员变量.

-------------------------------------------------------------------------------------

有时const n=21;
有时int Binarysearch(T &x,const int low,const int high);
有时int Find(T &x)const;

int const n=21;//n是常量,不能变,也可以写成const int 21;定义常量时必须有初始的值

int Binarysearch(T &x,const int low,const int high); //其实个人认为这种写法是不好的,应该写成int Binarysearch(cosnt T &x,int low,int high); 一般函数传递引用的时候,如果你不想改变改传递数据的值,那么应该将传递的引用声明为const,不然可以通过x改变你原数据的值,传递引用主要是为了节省传递实参的时间.而把low和high声明为const根本没有意义,而传递过来的实参也不一定要是const

int Find(T &x)const; //这样的函数用在类中,函数后面加const是不能改变类中成员的值




对楼下的问题:


int Binarysearch(T &x,const int low,const int high);和

int Binarysearch(const T &x,int low,int high);
是不一样的,第一个你传递参数x,如果在这个函数中改变了x,因为x是引用,是别名,改变了它的值它对应的值也要改变,加了const就不会出现这种情况,而吧low和high声明为const就没有意义(因为low 与 high 根本不是引用,即不是同一个变量);二把引用声明为const主要原因就是为了防止间接改变传递给函数的那个值。

第二个,你可以查一下MSDN,string类中的empty()函数的原型为:bool empty() const;
string str;str.empty();有错吗?empty()函数只是不能改变string类中数据成员的值才声明为bool empty() const;的当然
const string str;str.empty();也没有错

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值