c语言中const、static关键字的用法?

c语言中const、static关键字的用法?,第1张

const是指常数,这种数存放在rom中,也就是硬盘里,只有使用的时候才读取到内存。static类型的是局部静态数据,首先他肯定是局部变量,但是他的生存期是全局的。const数不能被修改,也不能是局部变量。static一般用于局部变量,但是他可以被修改,并且退出引用他的函数体后变量依旧存在,直到下一次引用时数值不变化。

在标准C++中,这样定义的是一个常量,用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数

const使用(类型):

1、用于指针的两种情况:const是一个左结合的类型修饰符.

int const*A//A可变,*A不可变

int*const A//A不可变,*A可变

2、限定函数的传递值参数:

void function(const int Var)//传递过来的参数在函数内不可以改变.

3、限定函数返回值型.

const int function()//此时const无意义

const myclassname function()//函数返回自定义类型myclassname.

4、限定函数类型.

void function()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就是修饰指针本身,即指针本身是常量。

5、const修饰函数参数

const修饰函数参数是它最广泛的一种用途,它表示函数体中不能修改参数的值(包括参数本身的值或者参数其中包含的值)。它可以很好

void function(const int Var)//传递过来的参数在函数内不可以改变(无意义,因为Var本身就是形参)

void function(const char* Var)//参数指针所指内容为常量不可变

void function(char* const Var)//参数指针本身为常量不可变(也无意义, 因为char* Var也是形参)

参数为引用,为了增加效率同时防止修改。

6、修饰引用参数时:

void function(const Class&Var)//引用参数在函数内不可以改变

void function(const TYPE&Var)//引用参数在函数内为常量不可变

7、const 修饰函数返回值

const修饰函数返回值其实用的并不是很多,它的含义和const修饰普通变量以及指针的含义基本相同。

(1) const int fun1() 这个其实无意义,因为参数返回本身就是赋值。

(2) const int * fun2()

8、调用时 const int *

参考资料:

百度百科——CONST(C中的CONST)

有一个从右向左解读的说法,如:

const int *xPtr

xPtr 是指针(*)指向int类型,其内容是const

int * const xPtr

xPtr是常量 指针(*)指向int类型

第三种没见过


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11472701.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存