所在的位置: C++ >> C++优势 >> C语言const的用法总结

C语言const的用法总结

最好的白癜风医院在哪 https://yyk.39.net/bj/zhuanke/89ac7.html

const的概念

const是constant的缩写,“恒定不变的”,在C语言中作为类型修饰符关键字,用来定义只读变量(常变量)的关键字,const定义的相当于常量,但又有变量的属性,所以叫常变量。

const推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。

const的作用

1)编译器自动进行类型检查,保护被修饰的变量防止意外的修改,增强程序的健壮性,消除隐患。

2)既可以避免意义模糊的数字出现,又可以同宏定义一样很方便地进行参数的调整和修改。

3)编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。用const修饰的变量,无论是全局变量还是局部变量,生存周期都是程序运行的整个过程。

const修饰的变量的基本定义和初始化方法

先看一下下面的C代码

#includestdio.h

intgetNum()

{

return;

}

intmain()

{

intn=90;

constintMaxNum1=getNum();//合法语句,运行时初始化

constintMaxNum2=n;//合法语句,运行时初始化

constintMaxNum3=80;//合法语句,编译时初始化

constintMaxNum4;//合法语句,但是没有初始化,此变量无意义

MaxNum4=10;//不合法语句,编译报错

return0;

}

可见,定义const变量的同时,必须进行初始化.

初始化有两种方式:运行时初始化和编译时初始化.

const的详细语法

const在C语言标准库函数中的典型应用

C语言标准库函数中,尤其是字符串函数库(string.h)中,很多函数的参数都被const限制了.但我们在以前的编码过程中并没有注意这个问题,经常将非const类型的数据传递给const类型的形参,这样做从未引发任何副作用,原因就是上面讲到的,将非const类型转换为const类型是允许的。

以strcpy函数为例说明const的典型应用,我们也应该在自己的函数中学习这种用法,以达到规避潜在风险的目的.

首先看一下在string.h中strcpy函数的声明

char*strcpy(char*strDestination,constchar*strSource);

函数的作用是将strSource指向的字符串拷贝到strDestination指向的字符串空间中,并返回strDestination的首地址.在这个过程中,srtSource是不需要改变其值的,所以用const加以限制,来保证在函数体中对strSource的误操作,规避潜在风险.

下面分析一下我们在调用strcpy函数时的几种情况,以助于我们加深理解:

预览时标签不可点收录于合集#个上一篇下一篇

转载请注明:http://www.aierlanlan.com/grrz/187.html

  • 上一篇文章:
  •   
  • 下一篇文章: