C语言const的用法详解,C语言常量定义详解
文章推薦指數: 80 %
当一个指针变量str1 被const 限制时,并且类似 const char *str1 这种形式,说明指针指向的数据不能被修改;如果将str1 赋值给另外一个未被const 修饰的指针变量str2,就有 ...
首页
教程
VIP会员
一对一答疑
辅导班
公众号
首页
C语言教程
C++教程
Python教程
Java教程
Linux入门
更多>>
目录
C语言入门
1
编程基础
2
C语言初探
3
变量和数据类型
4
C语言输入输出
5
循环结构和选择结构
6
C语言数组
7
C语言函数
8
预处理命令
9
指针
10
结构体
11重要知识点补充11.1typedef的用法11.2const的用法11.3C语言随机数
12
文件操作
13
C语言调试
14
C语言内存精讲
15
头文件的编写
首页>C语言入门>重要知识点补充
阅读:129,885
C语言const的用法详解,C语言常量定义详解
有时候我们希望定义这样一种变量,它的值不能被改变,在整个作用域中都保持固定。
例如,用一个变量来表示班级的最大人数,或者表示缓冲区的大小。
为了满足这一要求,可以使用const关键字对变量加以限定:
constintMaxNum=100;//班级的最大人数
这样MaxNum的值就不能被修改了,任何对MaxNum赋值的行为都将引发错误:
MaxNum=90;//错误,试图向const变量写入数据
我们经常将const变量称为常量(Constant)。
创建常量的格式通常为:
consttypename=value;
const和type都是用来修饰变量的,它们的位置可以互换,也就是将type放在const前面:
typeconstname=value;
但我们通常采用第一种方式,不采用第二种方式。
另外建议将常量名的首字母大写,以提醒程序员这是个常量。
由于常量一旦被创建后其值就不能再改变,所以常量必须在定义的同时赋值(初始化),后面的任何赋值行为都将引发错误。
一如既往,初始化常量可以使用任意形式的表达式,如下所示:
#include
const和指针一起使用会有几种不同的顺序,如下所示:
constint*p1;
intconst*p2;
int*constp3;
在最后一种情况下,指针是只读的,也就是p3本身的值不能被修改;在前面两种情况下,指针所指向的数据是只读的,也就是p1、p2本身的值可以修改(指向不同的数据),但它们指向的数据不能被修改。
当然,指针本身和它指向的数据都有可能是只读的,下面的两种写法能够做到这一点:
constint*constp4;
intconst*constp5;
const和指针结合的写法多少有点让初学者摸不着头脑,大家可以这样来记忆:const离变量名近就是用来修饰指针变量的,离变量名远就是用来修饰指针指向的数据,如果近的和远的都有,那么就同时修饰指针变量以及它指向的数据。
const和函数形参
在C语言中,单独定义const变量没有明显的优势,完全可以使用#define命令代替。
const通常用在函数形参中,如果形参是一个指针,为了防止在函数内部修改指针指向的数据,就可以用const来限制。
在C语言标准库中,有很多函数的形参都被const限制了,下面是部分函数的原型:
size_tstrlen(constchar*str);
intstrcmp(constchar*str1,constchar*str2);
char*strcat(char*destination,constchar*source);
char*strcpy(char*destination,constchar*source);
intsystem(constchar*command);
intputs(constchar*str);
intprintf(constchar*format,...);
我们自己在定义函数时也可以使用const对形参加以限制,例如查找字符串中某个字符出现的次数:
#include
关注公众号「站长严长生」,在手机上阅读所有教程,随时随地都能学习。
本公众号由站长亲自运营,长期更新,坚持原创,持续分享创业故事+学习历程+工作记录+生活日常+编程资料。
微信扫码关注公众号
优秀文章
Linuxmkdir命令:创建目录(文件夹)
Shell常用运算符
C++模板的显式实例化
汇编语言操作数类型
Go语言变量的生命周期
C语言frexp()函数:提取浮点数的尾数和指数部分
JSPRequest.getRequestedSessionId()方法:获得客户端访问网站的sessionid值
PHPclone关键字(克隆对象)
并发和并行的区别(图解)
JS标准有哪些?
精美而实用的网站,分享优质编程教程,帮助有志青年。
千锤百炼,只为大作;精益求精,处处斟酌;这种教程,看一眼就倾心。
关于网站|
关于站长|
如何完成一部教程|
公众号|
联系我们|
网站地图
Copyright©2012-2022biancheng.net,冀ICP备2022013920号
↑
延伸文章資訊
- 1C語言中的const,free用法詳解 - 程式人生
//const用法作為指標,const char* a,表示a是一個指向常量的一個指標,即常量的內容不能改變,但是指標a(a的值並不是a指向的常量)可以改變 // char* ...
- 2const char*, char const*, char*const 的区别 - 菜鸟教程
Bjarne在他的The C++ Programming Language里面给出过一个助记的方法:把一个声明从右向左读。 char * const cp; ( * 读成pointer to )...
- 3C語言const的用法詳解,C語言常量定義詳解 - 每日頭條
當一個指針變量str1 被const 限制時,並且類似const char *str1這種形式,說明指針指向的數據不能被修改;如果將str1 賦值給另外一個未被const 修飾的 ...
- 4const 在C/C++的用法 - Welkin小窩- 痞客邦
const的用法分為以下兩種: 1:在定義變量時使用: 總結:在使用const定義變量時,一定要進行初始化操作,在操作符(*,&)左邊的修飾的是指向的內容, ...
- 5const 放置位置的意義@ 程式手扎:: 隨意窩Xuite日誌
C++中const用法總結 1. const修飾普通變數和指標const修飾變數, ... 對於A,C, const修飾的類型為char的變數*pContent為常量,因此,pContent的內...