C语言 关键字const的作用 您所在的位置:网站首页 74160LD的作用 C语言 关键字const的作用

C语言 关键字const的作用

2024-03-31 12:43| 来源: 网络整理| 查看: 265

关键词解释

const是一个C语言(ANSI C)的关键字,具有着举足轻重的地位。它限定一个变量不允许被改变,产生静态作用。使用const在一定程度上可以提高程序的安全性和可靠性。另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一定帮助。

定义

const修饰的数据类型是指常类型,常类型的变量或对象的值是不能被更新的。

主要作用 1、可以定义const常量,具有不可变性 2、便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。例如: void f(const int i) { …} 编译器就会知道i是一个常量,不允许修改; 3、可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。 4、节省时间和提高效率,编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。 如何使用const和理解const int* 和int *const 的区别

以一个简单的代码例子来解释

#include void test1() { int n = 10; int m = 20; int *p = &n; *p = 20; p = &m; } void test2() { int n = 10; int m = 20; const int* p = &n; *p = 20; p = &m; } void test3() { int n = 10; int m = 20; int *const p = &n; *p = 20; p = &m; } int main() { //测试无cosnt的 test1(); //测试const放在*的左边 test2(); //测试const放在*的右边 test3(); return 0; }

解释代码:3个test的功能作用都是一样的,定义两个整形变量n和m,他们的值都分别为10和20。定义一个整形指针p,并且p指向的是n的地址,再通过指针p来改变n的值,使n的值变为20,再使指针p指向m的地址。

区别:test1()函数可以正常运行,而test2 ( )和test3()不可以。 test2()中的const int* p = &n;的const的作用是使指针不能改变指向当前地址的值,也就是说,此时n等于10,不能通过指针p来改变n的值。*p=20;此时这句话会报错。 test3()中的int *const p = &n;的const的作用是使指针不能改变当前所指向的地址。也就是说,此时p指向的是n的地址,而不能再改变去指向m的地址。p = &m; 这句话会报错

总结和使用:

const如果放在*的左边,修饰的是指针指向的内容,保证指针指向的内容不能通过指针来改变。但是指针变量本身的内容可变。const如果放在*的右边,修饰的是指针变量本身,保证了指针变量的内容不能修改,但是指针指向的内容,可以通过指针改变。 如果有觉得不好的地方或者需要改进的地方,可在下方评论区留言,谢谢!


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有