2023年static和const关键字的作用 c语言static和const的区别实用
在日常学习、工作或生活中,大家总少不了接触作文或者范文吧,通过文章可以把我们那些零零散散的思想,聚集在一块。那么我们该如何写一篇较为完美的范文呢?下面是小编帮大家整理的优质范文,仅供参考,大家一起来看看吧。
static和const关键字的作用 c语言static和const的区别篇一
程序的局部变量存在于(堆栈)中,全局变量存在于(静态区 )中,动态申请数据存在于(堆)中。那么关于c语言中static和const关键字的作用,你了解多少呢?下面是相关的知识,欢迎阅读。
用static声明局部变量-------局部变量指在代码块{}内部定义的变量,只在代码块内部有效(作用域),其缺省的存储方式是自动变量或说是动态 存储的,即指令执行到变量定义处时才给变量分配存储单元,跳出代码块时释放内存单元(生命期)。用static声明局部变量时,则改变变量的存储方式(生 命期),使变量成为静态的局部变量,即编译时就为变量分配内存,直到程序退出才释放存储单元。这样,使得该局部变量有记忆功能,可以记忆上次的数据,不过 由于仍是局部变量,因而只能在代码块内部使用(作用域不变)。
用static声明外部变量-------外部变量指在所有代码块{}之外定义的变量,它缺省为静态变量,编译时分配内存,程序结束时释放内 存单元。同时其作用域很广,整个文件都有效甚至别的文件也能引用它。为了限制某些外部变量的作用域,使其只在本文件中有效,而不能被其他文件引用,可以用 static关键字对其作出声明。
总结:用static声明局部变量,使其变为静态存储方式(静态数据区),作用域不变;用static声明外部变量,其本身就是静态变量,这只会改变其连接方式,使其只在本文件内部有效,而其他文件不可连接或引用该变量。
使用static用于函数定义时,对函数的连接方式产生影响,使得函数只在本文件内部有效,对其他文件是不可见的。这样的函数又叫作静态函数。使用静态函数的好处是,不用担心与其他文件的同名函数产生干扰,另外也是对函数本身的一种保护机制。
如果想要其他文件可以引用本地函数,则要在函数定义时使用关键字extern,表示该函数是外部函数,可供其他文件调用。另外在要引用别的文件中定义的外部函数的文件中,使用extern声明要用的外部函数即可。
const作用: “只读(readonly)”
(1)const
修饰变量,以下两种定义形式在本质上是一样的。它的含义是:const修饰的类型为type的变量value是不可变的,readonly。
type const valuename = value;
const type valuename = value;
(2)将const改为外部连接,作用于扩大至全局,编译时会分配内存,并且可以不进行初始化,仅仅作为声明,编译器认为在程序其他地方进行了定义.
extend const int valuename = value;
(1)指针本身是常量不可变
char * const pcontent;
const (char*) pcontent;
(2)指针所指向的内容是常量不可变
const char *pcontent;
char const *pcontent;
(3)两者都不可变
const char* const pcontent;
(4)还有其中区别方法,沿着*号划一条线:如果const位于*的左侧,则const就是用来修饰指针所指向的.变量,即指针指向为常量;如果const位于*的右侧,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); //引用参数在函数内为常量不可变
这样的一个const引用传递和最普通的函数按值传递的效果是一模一样的,他禁止对引用的对象的一切修改,唯一不同的是按值传递会先建立一个类对象的副本, 然后传递过去,而它直接传递地址,所以这种传递比按值传递更有效.另外只有引 用的const传递可以传递一个临时对象,因为临时对象都是const属性, 且是不可见的,他短时间存在一个局部域中,所以不能使用指针,只有引用的 const传递能够捕捉到这个家伙.
(2)const 修饰函数返回值
const修饰函数返回值其实用的并不是很多,它的含义和const修饰普通变量以及指针的含义基本相同。
a.
const int fun1() //这个其实无意义,因为参数返回本身就是赋值。
b.
const int * fun2() //调用时
const int *pvalue = fun2(); //我们可以把fun2()看作成一个变量,即指针内容不可变。
c.
int* const fun3() //调用时
int * const pvalue = fun2(); //我们可以把fun2()看作成一个变量,即指针本身不可变。
<
s("content_relate");【c语言中static和const关键字的作用】相关文章:
总结c语言中const关键字的使用10-01c语言中const关键字的使用方法10-05c语言中static和extern的区别10-02c++中const关键字10-28c语言关键字static的使用10-02c语言关键字const的使用09-30c++ 中const和复合类型10-06c语言中32个关键字使用详解09-29c++ const引用与非const引用10-06
-
2023年c语言中default的作用 c语言default怎么用大全
-
社区信访工作的主题和关键词(通用23篇)
-
聘用通知书和offer的区别 聘用通知书和劳动合同的区别(实用12篇)
-
最新工作方案和计划的区别 工作方案和实施方案的区别(实用四篇)
-
c语言实验保留整数 c语言的保留字符通用
-
最新托福和雅思的区别?实用
-
策划和方案的区别(实用12篇)
-
约定和赠予的区别实用(4篇)
-
2023年约定事实和法定事实的区别通用
-
无线路由300m和150m的区别实用
-
最新工作方案和计划的区别 工作方案和实施方案的区别8篇(通用)
-
2023年c语言字符串函数的用法 c语言字符串常用函数通用
-
2023年小学英语试讲和说课稿的区别实用(22篇)
-
2023年协议书和房产证的区别(实用14篇)
-
c语言的map函数 c语言map函数头文件实用
-
讲话稿和发言稿的区别
-
最新c语言中运算符的优先级别和结合性优质
-
2023年工作方案和计划的区别 工作方案和实施方案的区别模板(七篇)
-
2023年工作方案和计划的区别 工作方案和实施方案的区别(优秀五篇)
-
工作方案和计划的区别 工作方案和实施方案的区别(三篇)
-
2023年工作方案和计划的区别 工作方案和实施方案的区别优秀(4篇)
-
2023年工作方案和计划的区别 工作方案和实施方案的区别九篇(汇总)
-
2023年工作方案和计划的区别 工作方案和实施方案的区别(优质五篇)
-
2023年工作方案和计划的区别 工作方案和实施方案的区别(优秀七篇)
-
工作方案和计划的区别 工作方案和实施方案的区别(4篇)
-
2023年iphone7plus和iphone6plus的区别 dont let us down通用
-
2023年意大利计划生和国际生的区别实用
-
教学设计和教案的区别(实用8篇)
-
最新工作方案和计划的区别(实用五篇)
-
2023年我与世界杯的情结800字 我和世界杯的区别实用
-
2023年单位工作总结和工作计划的区别(实用9篇)
-
座谈会邀请函的主题和关键词(实用12篇)
-
最新典型发言和表态发言的区别(通用13篇)
-
2023年典型发言和表态发言的区别 典型发言心得体会(实用11篇)
-
最新详细解析红茶和绿茶的区别和功效实用
-
关于雨水和谷雨的区别详解
-
计划生育工作会议的主题和关键词(实用18篇)
-
2023年保管合同和仓储合同的区别(实用10篇)
-
电路实验和心得体会的区别(实用8篇)
-
最新工作方案和计划的区别 工作方案和实施方案的区别(九篇)
-
最新工作方案和计划的区别 工作方案和实施方案的区别(4篇)
-
2023年协议书和合同的区别(通用8篇)
-
最新工作方案和计划的区别 工作方案和实施方案的区别(9篇)
-
社区信访工作的主题和关键词(热门18篇)
-
工作方案和计划的区别 工作方案和实施方案的区别8篇(优秀)
-
企业培训师对象和能力的区别实用
-
最新实用的c语言小程序 c语言经典小程序优质
-
2023年java中传值调用的理解和透析的区别 java 传值传引用区别大全
-
2023年工作计划和工作方案的区别(通用13篇)
-
2023年和微信的区别模板
-
最新寓言成语和历史成语的区别 历史故事成语故事寓言故事的区别(三篇)
-
2023年成语故事与寓言故事的区别和联系(四篇)
-
第三方合同和劳动合同区别 劳务合同和劳动合同的区别(实用5篇)
-
村庄疫情防控工作方案: 社区工作者和农民的参与关键(实用14篇)
-
2023年委托服务协议书和合同的区别(实用十篇)
-
2023年自己比别人差的说说 和自己比别和别人比(实用六篇)
-
2023年剧本策划和编剧的区别(通用8篇)
-
2023年网站方案和设计的区别(通用10篇)
-
c语言的心得体会(实用9篇)
-
最新散文 散文和小说的区别(实用四篇)
-
最新成绩和心得体会的区别(实用15篇)
-
结算协议书和结算书的区别(实用12篇)
-
销售工作计划目标和目标的区别(实用18篇)
-
最新工作方案和计划的区别 工作方案和实施方案的区别(模板4篇)
-
最新工作方案和计划的区别 工作方案和实施方案的区别优秀(4篇)
-
visa信用卡和借记卡的区别(四篇)
-
c语言从键盘输入数据的代码模板
-
2023年狼和狐狸的区别优秀
-
2023年雇佣劳动合同和劳动合同的区别(实用10篇)
-
2023年劳务派遣合同和劳动合同的区别(实用8篇)
-
2023年仓储服务合同和租赁合同的区别(实用20篇)
-
2023年专项计划招生和普通招生的区别(实用九篇)
-
最新美国绿卡和美国护照的区别 美国绿卡与护照的区别实用
-
刑事和解协议书和谅解书的区别(通用8篇)
-
公函和便函的区别 公函和介绍信的区别(模板3篇)
-
2023年高级工程师和一建的区别通用(三篇)
-
2023年建议书字 建议书和倡议书的区别通用(四篇)
-
借条和欠条的区别
-
借条和欠条的区别
-
2023年工作方案的基本格式 工作方案和实施方案的区别(实用七篇)
-
结算申请和结算申请书的区别(实用12篇)
-
党龄和党籍的区别
-
最新c语言问号冒号怎么用符号表示 c语言问号和冒号连用举例优质
-
未来的展望和现实的区别模板
-
最新类比法和模型法的区别通用
-
最新工作方案和计划的区别(通用九篇)
-
最新工作方案和计划的区别7篇(通用)
-
销售合同和购车合同的区别通用
-
2023年医院合同 医院合同制和编制的区别实用(六篇)
-
2023年制度和办法的区别(八篇)
热点推荐
下一篇:最新名师之路心得体会范文6篇