const在c语言中作用,在C语言中const作用全面总结.doc

在C语言中const作用全面总结

C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助。Const 是C++中常用的类型修饰符,常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。?一、Const作用 如下表所示:No.作用说明参考代码1可以定义const常量 const int Max = 100; 2便于进行类型检查 const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误void f(const int i) { .........} //对传入的参数进行类型检查,不匹配进行提示3可以保护被修饰的东西防止意外的修改,增强程序的健壮性。void f(const int i) { i=10;//error! } //如果在函数体内修改了i,编译器就会报错4可以很方便地进行参数的调整和修改同宏定义一样,可以做到不变则已,一变都变 5为函数重载提供了一个参考 class A{ ...... void f(int i) {......} //一个函数 void f(int i) const {......} //上一个函数的重载 ......};6可以节省空间,避免不必要的内存分配const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝#define PI 3.14159 //常量宏const doulbe Pi=3.14159; //此时并未将Pi放入ROM中 ......double i=Pi; //此时为Pi分配内存,以后不再分配!double I=PI; //编译期间进行宏替换,分配内存double j=Pi; //没有内存分配double J=PI; //再进行宏替换,又一次分配内存!7 提高了效率编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高 ?二、Const的使用1、定义常量(1)const修饰变量,以下两种定义形式在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。 TYPE const ValueName = value; const TYPE ValueName = value;(2)将const改为外部连接,作用于扩大至全局,编译时会分配内存,并且可以不进行初始化,仅仅作为声明,编译器认为在程序其他地方进行了定义. extend const int ValueName = value; 2、指针使用CONST(1)指针本身是常量不可变 (char*) const pContent; const (char*) pContent; (2)指针所指向的内容是常量不可变 const (char) *pContent; (char) const *pContent; (3)两者都不可变 const char* const pContent; (4)还有其中区别方法,沿着*号划一条线:如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。?3、函数中使用CONST(1)const修饰函数参数a.传递过来的参数在函数内不可以改变(无意义,因为Var本身就是形参)void function(const int Var); b.参数指针所指内容为常量不可变void function(const char* Var); c.参数指针本身为常量不可变(也无意义,因为char* Var也是形参)void function(char* const Var); d.参数为引用,为了增加效率同时防止修改。修饰引用参数时:void function(const Class& Var); //引用参数在函数内不可以改变void function(const TYPE& Var

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527705.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

龙贝格数值分析作业c语言,数值分析龙贝格实验报告.doc

数值分析龙贝格实验报告实验三 龙贝格方法【实验类型】 验证性【实验学时】 2学时【实验内容】1.理解龙贝格方法的基本思路2.用龙贝格方法设计算法,编程求解一个数值积分的问题。【实验前的预备知识】1.计算机基础知识2.熟悉编程基本思想3&am…

c语言贪吃蛇黑方框,[求助][贪吃蛇]源程序,请教其中一个问题。

[求助][贪吃蛇]源程序,请教其中一个问题。源程序如下: 我的问题是,调节游戏速度时,数字为什么越大时,有时候竟然越快?#define N 200#include #include #include #define LEFT 0x4b0…

如何理解android的函数,通过Android源码理解回调函数

概述我们先看一下维基百科对回调函数的定义:在计算机程序设计中,回调函数,或简称回调(Callback 即call then back 被主函数调用运算后会返回主函数),是指通过函数参数传递到其它代码的,某一块可执行代码的引用。这一设计允许了底层…

盒子 Box

UVa1587 思路&#xff1a; 1.输入每个面的长宽并将每个面较长的一边放在前面 2.判断是否存在三对面分别相等 3.判断是否存在三组四棱相等 #include <stdio.h> #include <stdlib.h> #define maxn 100int cmp(const void* e1, const void* e2) {return (int)(*(d…

android 复用标题栏,Android基础---使用ToolBar教你打造一个通用的标题栏

现在项目中一般都会使用标题栏&#xff0c;谷歌在2014年推出了新的app bar---ToolBar&#xff0c;代替了以前使用的ActionBar。在做项目中会经常用到这个ToolBar&#xff0c;虽然用的很多&#xff0c;但是自己对它如何用还不是很明白&#xff0c;今天就来简单的学习下这个控件的…

android html 显示表格边框,tablelayout表格布局详解

如果你已经下载好MT4软件(很多专业外汇平台都有提供下载的)&#xff0c;在手机桌面找到图表打开&#xff0c;然后选择好交易商&#xff0c;输入账号密码就可以了。TableLayout怎样实现表格布局表格布局的子对象不能指定 layout_width 属性.宽度永远是 MATCH_PARENT。不过子对象…

android jdbc 连接mysql数据库,android怎么用JDBC方法连接mysql数据库

2016-11-21 回答用android程序去直连mysql数据库&#xff0c;觉得这样做不好&#xff0c;出于安全等方面考虑。数据库地址&#xff0c;用户名密码&#xff0c;查询sql什么的都存在程序里&#xff0c;很容易被反编译等方法看到。建议把表示层和数据层逻辑分开&#xff0c;数据层…

华为注册鸿蒙商标与三海经,华为注册了一本《山海经》?除了鸿蒙商标,还有很多...

原标题&#xff1a;华为注册了一本《山海经》&#xff1f;除了鸿蒙商标&#xff0c;还有很多5月25日消息 昨天IT之家报道&#xff0c; 国家知识产权商标局网站显示&#xff0c;&#xff0c;适用于第9类别和第42类别。申请日期为2018年8月24日。此前传闻称&#xff0c;华为OS操作…

android开机渲染视频太久,Android过度渲染优化解决方案

过度绘制是发生的每一次应用要求系统上别的画的东西。“调试GPU透支”工具覆盖上你的屏幕的色彩显示多少次像素被重绘。通过查看GPU透支来改善应用程序的渲染时间。方法1&#xff1a;打开手机设置—>开发人员工具选项—>调试GPU过度绘制—>显示GPU视图更新&#xff0c…

小米android停止,小米由于错误而停止将Android 10推广到MiA3

当小米上周宣布将为Mi A3和Redmi Note 8用户推出Android 10更新时&#xff0c;用户为最终升级他们的设备(至少在软件方面)感到非常兴奋。但是&#xff0c;这种喜悦似乎是短暂的。用户抱怨说&#xff0c;尽管收到更新通知&#xff0c;但他们仍无法下载更新。有些人甚至看到更新在…

html两张图片无缝合成一张,怎么用PS把两张图片合成一张 PS无缝拼图边缘如何处理...

PS怎么把两张图片合成一张&#xff1f;PS无缝贴图怎么用&#xff1f;PS无缝拼接要用什么工具&#xff1f;PS无缝拼图快捷键是什么&#xff1f;PS无缝拼图有色差怎么办&#xff1f;PS把两张图片合成一张边缘怎么修&#xff1f;PS无缝拼接图片边缘如何处理&#xff1f;PS把一张图…

html输入公式得到混合运算结果,excel表格如何用公式计算加减乘除混合运算-excel乘法如何计算,excel函数怎么计算乘法...

Excel支持数学中的四则运算&#xff0c;直接在目标单元格写相应的公式即可。例百如求A1减B1的差&#xff0c;在C1单元格可输入&#xff1a;A1-B1需注意&#xff1a;Excel里面任何公式(包括数学四则运算)都是需要以等号度开头。Excel里面的号用反斜杠/表示。乘法问中的x用星号*表…

汇编html文档,欢迎走进HTML的世界汇编.ppt

欢迎走进HTML的世界汇编在HTML里用和划分段落,可以不成对出现。 欢迎使用 HTML这会是一种很有趣的体验 另一个段落元素 段落划分 使用对齐属性修饰段落 学习HTML这会是一种很有趣的体验 右对齐 Left&#xff1a;左对齐 Center&#xff1a;居中 Right&#xff1a;右对齐 使用对…

html点击事件传参 php,HTML通过事件传递参数到js详解及实例

目标处理函数为selectAttr(test)1.直接传递给定参数如:οnclick"selectAttr(1);οnclick"selectAttr(a);2.传递某属性值οnclick"selectAttr(typeName.value);οnclick"selectAttr(nameId.value);3.传递this对象οnclick"selectAttr(this);通过this对…

html 属于mvvm框架,前端MVVM框架avalon揭秘 - HTML编译器

MVVM试图更加清晰的讲用户界面(UI)开发从应用程序的业务逻辑与行为中心分离&#xff0c;由于&#xff0c;不少这样的模式的实现都须要利用声明式数据绑定来实现讲View(视图)工做从其余层分离css因此出现了一大堆自定义的声明式的语法&#xff1a;html如:Avalonnode顾名思义,自定…

台式电脑怎么找不到计算机在哪,台式机没有蓝牙怎么办

台式机没有蓝牙&#xff0c;想上个蓝牙&#xff0c;该怎么样解决呢?下面由小编给你做出详细的台式机没有蓝牙解决方法介绍!希望对你有帮助!台式机没有蓝牙解决方法一&#xff1a;可以安装USB蓝牙设备知识延伸&#xff1a;给台式机安装USB蓝牙设备与台式机蓝牙连接1***先将电脑…

html的opacity标签,css中opacity是什么意思

css样式 给div样式opacity:0 是什么意思透明度 注意 ie低版本要实现透明度必须用ie特有的滤镜 而非简单的opacityCSS中 not(.active) { opacity: 0.3; } 是什么意思css的opacity让div和里面的div透明了怎样才让div里面的div不透明&#xff1f;不透明度会作用于整个元素以及它所…

使用计算机时 正确的关机顺序是( ),《计算机应用基础》半期考试卷

内容简介&#xff1a;《计算机应用基础》半期考试卷。一、选择题 (每题 2分)1.使用计算机时&#xff0c;正确的关机顺序是__A__________A先关主机&#xff0c;再关显示器&#xff0c;打印机 B先关显示器&#xff0c;再关主机&#xff0c;打印机C先关显示器&#xff0c;再关打印…

北交计算机学硕培养计划,北京交通大学硕士研究生培养方案——交通信息工程及控制...

交通信息工程及控制(专业代码&#xff1a;082302授予工学硕士学位)一、培养目标本专业研究生培养方案强调自动化与控制领域先进应用技术的研究与开发能力&#xff0c;但不忽略基础理论的培养。其培养目标是培养在控制与信息工程、自动化工程领域具有一定的理论基础、较宽的知识…

frm考试可以用计算机,FRM考试,考生自己可以携带计算器吗?

因为FRM考试有大量的计算题&#xff0c;是需要用到计算器的&#xff0c;近日有考生咨询&#xff0c;参加考试&#xff0c;可以自己携带FRM计算器吗&#xff1f;答案当然是肯定&#xff0c;考生是可以携带FRM计算器的&#xff0c;但是要携带协会官方要求的型号&#xff0c;不是什…