const

const全名 Constant意为:常数,常量。
const修饰变量,其作用也在编译阶段,告诉编译器,该变量我私定终身了(Tips:编译四个阶段:1预处理define\include\条件编译等;2编译3汇编4链接),在以后的运行过程中,休的胡来。
const和define功能类似但是它们是有区别的,比如说:作用的阶段,一个在预处理,一个在编译;define定义的就是个常量,而const修饰的实际上是一个变量,只不过它是只读的而已。

一、修饰变量

1.局部变量:
对于const修饰的局部变量,是不允许显示的修改,但是可以通过其他比如指针的方法来修改的。
eg:

vold func(vold)
{char arr[2];const int a=0;arr[2]=1;printf("%d\n",a);//a==1
}

2.全局变量
对于const修饰的全局变量来说是不允许修改值的。

二、修饰指针

    int const *p1;//const int *p1等价int * const p2;const int * const p3;

第一行p1指向的内容只读。
第二行p2本身只读。
第三行p2本身和指向的内容都只读。

三、修饰函数和形参

1.修饰函数:
修饰函数实际上就是修饰返回值,对于返回值是一个变量的,修饰也没有什么意义,大多数用于修饰返回指针类型的函数返回值。

const int* func(void)//表示返回的地址指向的内容只读

接收的话只能用const指针接受,否则编译会出错:

const int* b = func()

2.修饰形参:
这里的作用就比较大了:

//保护源字符串不被修改,若修改src则编译出错。
void fun(const char * src, char * des)
{    strcpy(des,src);
}

记住一个要点:“姑娘你可以玩,但是不要玩坏了”

桥黑板,画重点:

1.const 作用在编译阶段
2.用 const 修饰的变量,无论是全局变量还是局部变量,生存周期都是程序运行的整个过程
3.用const修饰过的局部变量只是有了静态特性,并没有说它变成了静态变量。
4.const定义的是变量,而define定义的是常量。
5.const修饰指针,以*为中心,const在*左边,则指针指向的数据只读,const在*右边,则指针本身只读,四个字:左数右指。

Const的用法及作用相关推荐

  1. c语言数组前const的作用,c语言中const的用法

    C语言作为一门新型高级编程语言,在计算机软件编程中具有较为广泛的应用和实现.下面小编就跟你们详细介绍下c语言中const的用法,希望对你们有用. c语言中const的用法如下: const的基本解释 ...

  2. 【C 语言】const 关键字用法 ( 常量指针 - const 在 * 左边 - 修饰数据类型 - 内存不变 | 指针常量 - const 在 * 右边 - 修饰变量 - 指针不变 )

    文章目录 一.const 普通用法 二.常量指针 ( 指向 常量 的指针 | 被指向的内存不能被修改 ) 三.指针常量 ( 指针不能被修改 ) 三.指向 常量 的 指针常量 四.const 在 * 左 ...

  3. inline内联的用法与作用

    inline内联的用法与作用      内联函数是一种编译机制,优点从代码上是看不出来的,但是程序的执行效率上有差别,通常,编译器对函数调用的处理是一种类似中断的方式,即当执行到函数调用语句时,程序把 ...

  4. C语言中const的用法

    C语言中const的用法 基本解释         const是一个C语言的关键字,它限定一个变量不允许被改变.使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解co ...

  5. c语言const用法的位置与意义,const(c语言const的用法详解)

    const int *A; //const修饰指向的对象,A可变,A指向的对象不可变 怎么理解?. 呵呵,想法挺独特啊.const在声明变量时有四种用法:int x = 10;int y = 11.c ...

  6. C++ const的用法详解

    目录 前言 一 const的基本概念 二 const修饰基本数据类型 2.1 const修饰一般常量及数组 2.2 const修饰指针(*) 2.2.1 常量指针 2.2.2 指向常量的指针(指针常量 ...

  7. 关键字static、const、volatile的作用

    关键字static的作用是什么?这个简单的问题很少有人能回答完全.在C语言中,关键字static有三个明显的作用: 1.在函数体,一个被声明为静态的变量在这一函数被调用过程中维持其值不变. 2. 在模 ...

  8. C语言const的用法

    文章目录 1.const的用法 2.const与define的区别 3.const修饰函数的参数 4.获取视频教程 5.版权声明 1.const的用法 const是constant的缩写,意思是&qu ...

  9. C++中const关键字用法详解及实例和源码下载(一)

    最近在学习C++基础部分,看了两天书,已经看过了一遍,半知半解,回过头来重新看第二遍,深入了解一下C++的基础知识.现在读到了const关键字的用法,书上面讲解的时候并没有给出完整的实例,只是理论的讲 ...

最新文章

  1. WinCvs里登录出现C:/cvs: no such repository解决方案
  2. Redis String 类型操作及常用命令
  3. Effective C# 原则48:了解更多的工具和资源(译)
  4. 开学季|计算机专业的你看过来!
  5. Oreilly.Python.Cookbook(3rd.Edition.May.2013)pdf
  6. 纯js分页代码(简洁实用)
  7. tinymce 富文本简单使用
  8. Linux 进程间通信 --- 信号通信 --- signal --- signal(SIGINT, my_func); --- 按键驱动异步通知(转)...
  9. Qt调用CUDA动态库及配置
  10. PIE SDK专题制图切换模板
  11. C# XElement
  12. Chrome google浏览器从缓存下载视频
  13. C语言每日一练——第74天:黑与白问题
  14. Chase your purpose,not your passion
  15. java发送电子邮件
  16. ipad2利用crappstore安装破解软件成功-还是写一下我安装的过程吧,大家可以参考一下...
  17. 视频监控开发(1)——萤石云硬盘录像机SDK使用
  18. 英国金融监管机构加大力度审查违规加密货币公司
  19. mg90舵机参数_MG995945995舵机的参考资料讲解
  20. monkey patch(猴子补丁)

热门文章

  1. 【市场分析】手机配件批发哪家好?
  2. Excel中常规格式和日期格式的转换规则
  3. CentOS7部署安装CloudStack4.11.0成功添加第一个主机
  4. Neo4j数据库删除数据
  5. 商品积分兑换小程序开发制作
  6. 《Eclipse的常用简单使用方法》
  7. linux带宽速度测试脚本
  8. 流形学习-Manifold Learning
  9. 资源管理器已停止运行,屏幕已黑,explorer.exe打不开
  10. 关注你要的结果,而不要在意别人的态度