const在C语言中算是一个比较新的描述符,我们称之为常量修饰符,意即其所修饰的对象为常量(immutable),我们来分情况看语法上它该如何被使用,以下内容是由微蓝经验网用户发布话说C语言的const2,不得不了解,希望对于用户有一定帮助,为朋友进行解决疑惑,如若想了解更多相关内容,可以向底部移动了解更多与本教程文章相关解决经验方法!
例如:
const char* name=David;
如果没有const,我们可能会在后面有意无意的写name[4]='x'这样的语句,这样会
导致对只读内存区域的赋值,然后程序会立刻异常终止,有了 const,这个错误就
能在程序被编译的时候就立即检查出来,这就是const的好处,让逻辑错误在编译
期被发现,const 还可以用来修饰数组
const char s[]=David;
与上面有类似的作用。

在函数声明时修饰参数
来看实际中的一个例子,NAME
memmove -- copy byte string
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include
void *
memmove(void *dst, const void *src, size_t len);

这是标准库中的一个函数,用于按字节方式复制字符串(内存),它的第一个参数,是将字符串复制到哪里去(dest),是目的地,这段内存区域必须
是可写,它的第二个参数,是要将什么样的字符串复制出去,我们对这段内存区域只做读
取,不写。

于是,我们站在这个函数自己的角度来看,src 这个指针,它所指向的内存内所存
储的数据在整个函数执行的过程中是不变,于是src所指向的内容是常量,于是就
需要用const修饰,例如,我们这里这样使用它,const char* s=hello;
char buf[100];
memmove(buf,s,6); //这里其实应该用strcpy或memcpy更好
如果我们反过来写,
memmove(s,buf,6);

那么编译器一定会报错,事实是我们经常会把各种函数的参数顺序写反,事实是编
译器在此时帮了我们大忙,如果编译器静悄悄的不报错,(在函数声明处去掉
const即可),那么这个程序在运行的时候一定会崩溃。

本文仅供参考,原帖无图,为了美观随便找的图,以上经验结束,与话说C语言的const2,不得不了解,有关的经验教程内容,若解决问题请点击“有用”,没有解决请向下浏览“相关”内容或点击“无用”平台积极改进优质原创的内容文章,点击下方工具分享给更多的朋友吧!





微蓝网部分素材(图片、视频、音频等)来自于网络,不代表本站立场,以上素材或内容仅代表作者个人观点,因此产生相关问题作者本人负责,本站将不承担任何法律责任! 如有问题请进行侵权投诉
© 2025 VLPOS.com 版权所有 微蓝网 ICP备案号:黑ICP备20003952号-1
黑公网安备 23012602000120号