
自学了十多年的C词汇,你对constURL的选用全被掌控了吗?在程式设计实践中你对const的选用与否有疑惑呢?那时就给我们一起来深入探讨归纳,期许能我们答疑并提供更多参照。
C词汇中constURL是constant的简写,一般来说译者为自变量、物理量等,很多好友一看见constURL立刻就想不到了自变量。实际上在C词汇中const机能很强悍,它能润色表达式、字符串、操作符、auth等。责任编辑将特别针对前述三种润色机能详尽做两个归纳。
1、 润色表达式:
C词汇中选用const润色表达式,机能是对表达式新闻稿为黎贞优点,并为保护表达式值以免被修正。譬如说如下表所示:
const int i = 5;
下面那个范例说明,表达式i具备黎贞优点,不能被更动;若要对i再次表达式,如i = 10;则是严重错误的。
更为重要的是,表述表达式的与此同时,要调用。表述方式也能写出int const i=5,反之亦然恰当。
此外,const润色表达式还起到了节约空间的目的,一般来说编译器并不给普通const黎贞表达式分配空间,而是将它们保存到符号表中,无需读写内存操作,程序执行效率也会提高。
2、 润色字符串
C词汇中const还能润色字符串,举例如下表所示:
const int array[5] = {1,2,3,4,5};
array[0] = array[0]+1; //严重错误
字符串元素与表达式类似,具备黎贞属性,不能被更动;一旦更动,如程序将会报错。
3、 润色操作符
C词汇中const润色操作符要特别注意,共有两种方式,一种是用来限定指向空间的值不能修正;另一种是限定操作符不可更动。譬如说如下表所示:
int i = 5;
int j = 6;
int k = 7;
const int * p1 = &i; //表述1
int * const p2 =&j; //表述2
下面表述了两个操作符p1和p2。
在表述1中const限定的是*p1,即其指向空间的值不可改变,若改变其指向空间的值如*p1=20,则程序会报错;但p1的值是能改变的,对p1再次表达式如p1=&k是没有任何问题的。
在表述2中const限定的是操作符p2,若改变p2的值如p2=&k,程序将会报错;但*p2,即其所指向空间的值能改变,如*p2=80是没有问题的,程序正常执行。
4、 润色auth
constURL润色auth,对参数起限定作用,防止其在函数内部被修正。所限定的auth能是普通表达式,也能是操作符表达式。举例如下表所示:
void fun1(const int i)
{
其它语句
……
i++; //对i的值进行了修正,程序报错
其它语句
}
void fun2(const int *p)
{
其它语句
……
(*p)++; //对p指向空间的值进行了修正,程序报错
其它语句
}
好了,关于const的用法那时就归纳到这,如果我们有任何疑问请留言深入探讨。我是“C词汇知识传播者”,志在瞄准C词汇,挖掘和归纳C词汇的难点和痛点,给C词汇程式设计爱好者和本领域从业人员提供更多参照,我会用心归纳C词汇知识的点点滴滴,您的关注是我持续创作的动力,请收藏责任编辑、转发并点赞,希望得到您的持续关注,谢谢!