0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

C语言|const关键字介绍

玩转单片机 来源:玩转单片机 2023-05-25 15:11 次阅读

最近看别人的项目,发现const使用比较多,通过使用const来保护变量,这篇推文就来简单回顾一下相关知识!

|用法1

有时候定义了一些变量,但是并不想它被修改,简单理解就是定义了一些变量,这些变量的性质是只读,就可以使用const来保护相关数据:

#include "stdio.h"

int main()
{
    // 写法1 
    const int a = 10;
    // 写法2
    int const b = 10;
    // 报错 
    a = 20;
    // 报错
    b = 20; 
}

|用法2

除了保护变量,还能和指针配合使用,特别要注意const的位置,这是个细节问题,不能忽视!!!

#include "stdio.h"

int main()
{
    // 变量 
    int a = 10;
    int b = 10;
    // 写法1 
    const int *p1 = &a;
    // 写法2
    int const *p2 = &a;
    // 写法3
    int *const p3 = &a;
    
    // 重新赋值 
    p1 = &b;
    p2 = &b;
    // 报错 
    // p3 = &b;
    // 成功 
    *p3 = 20;
    // 报错 
    *p1 = 20;
}

注意它们的区别:1个只能改值,一个只能改地址!

|用法3

除了配合指针使用,还能作为函数的参数进行使用,可以细分为两类

类型1

为了防止在函数内部修改指针指向的数据,就可以用 const的如下写法限制:

size_t strlen ( const char * str );

类型2

为了防止在函数内部修改指针指向地址,就可以用 const的如下写法限制:

voidtest( char *constobj);

特别注意:加了const的变量或指针和不加是有区别的, 不要随便进行类型转换, 或者其他异常操作!





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7616

    浏览量

    138001
  • CONST
    +关注

    关注

    0

    文章

    45

    浏览量

    8196

原文标题:C语言|const关键字

文章出处:【微信号:玩转单片机,微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    C语言关键字const的几种用法

    本期来讲解一个C语言关键字——const
    发表于 06-21 11:05 1735次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b><b class='flag-5'>关键字</b><b class='flag-5'>const</b>的几种用法

    C语言volatile关键字详解 精选资料分享

    1.volatile和什么有关百度翻译是这样子翻译volatile的:图1-1 百度翻译volatile截图volatile属于C语言关键字,《C Primer Puls》 是这样解
    发表于 07-22 07:20

    嵌入式程序员常见的const、static、volatile关键字

    嵌入式程序员const、static、volatile三个关键字的朴素认识摘要:在C语言程序编写中,const、static
    发表于 12-21 06:08

    标准C语言总共有32个关键字

    标准C语言总共有32个关键字
    发表于 01-12 15:59 0次下载

    C语言32个关键字

    C语言32个关键字,感兴趣的小伙伴们可以看看。
    发表于 07-26 16:29 66次下载

    C++与Cconst关键字有何差别?

    C++与C中的const关键字有何差别?
    的头像 发表于 02-03 14:51 1868次阅读

    C++中mutable关键字详解与实战

    mutable关键字详解与实战 在C++中mutable关键字是为了突破const关键字的限制,被mutable
    的头像 发表于 09-10 09:23 5608次阅读

    C++中的const关键字介绍

    前一篇文章我们主要介绍C++中的复合类型引用和指针,这篇文章我们将会主要介绍C++中const关键字
    的头像 发表于 03-17 14:01 734次阅读

    浅谈C++的mutable关键字

    C++11中推出了一种特殊的关键字:mutable用于修饰类变量。它的作用是标注该变量一定会被修改,因此也就不是const类型。目的是为了使这些成员变量在被const
    的头像 发表于 04-15 11:13 3878次阅读

    const关键字应用总结

    C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性
    的头像 发表于 05-26 09:06 635次阅读

    C语言32个关键字可以分为这几类

    C语言是一种面向过程、抽象化的通用程序设计语言,广泛应用于嵌入式底层和系统开发。C语言关键字共有
    的头像 发表于 12-31 15:28 5233次阅读
    <b class='flag-5'>C</b><b class='flag-5'>语言</b>32个<b class='flag-5'>关键字</b>可以分为这几类

    浅析C语言中的regiseter关键字

    C语言中重要的关键字有很多,static const extern我们之前都讲过,还有一个在面试中出现的频率也比较高:register。
    的头像 发表于 08-25 17:10 1195次阅读
    浅析<b class='flag-5'>C</b><b class='flag-5'>语言</b>中的regiseter<b class='flag-5'>关键字</b>

    快速掌握C语言关键字

    C语言中的32个关键字你知道多少个呢?根据关键字的作用分为四类:数据类型关键字、控制语句关键字
    的头像 发表于 07-06 08:04 444次阅读
    快速掌握<b class='flag-5'>C</b><b class='flag-5'>语言</b><b class='flag-5'>关键字</b>

    C语言关键字--typedef

    C语言关键字使用方法学习指南!
    的头像 发表于 10-07 12:44 353次阅读

    C语言关键字分别发生在哪个阶段

    在编译的第一个阶段:预处理,对一些宏定义做替换。 第二个,constC语言中的 const 用于修饰只读变量,表示变量本身不能修改。 这个关键字
    的头像 发表于 11-24 10:31 249次阅读