const和static区别(const与static)

http://www.itjxue.com  2023-01-30 03:05  来源:未知  点击次数: 

c#中static和const有什么区别?

static 是静态的修饰符,const是定义常量的修饰符;

const就是只读的意思,只在声明中使用;

static一般有2个作用,规定作用域和存储方式。对于局部变量,static规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放;

对于全局变量,如果以文件划分作用域的话。此变量只在当前文件可见;

对于static函数也是在当前模块内函数可见。

static为静态修饰符,可以放在对象前面(函数也是一种对象)如:

class Example{public static void show(){Console.WriteLine("这是一个静态方法");}}

可直接Example.show();去调用这个方法而不用实例化

当然也可以定义静态的属性:

public static string str="hello";

但如果这样Example.str="helloworld";就出现问题了

也就是客户端可以在任何地方去改变str的值。这样的话极容易产生错误,因为str的值是依靠

Example类的,随时可以改变。比如再声明一个类:

Class Class1

{Example.str="helloworld";public void show(){Console.WriteLine(Example.str);//此时Example.str会输出helloworld}

}

class Example{

public static string str="hello";

}

}

要防止str值发生改变,就需要用到const修饰符

public const string str="hello";//str被称为常量

这是如果再对Example.str赋值,则编译器将产生错误

用常量来保存公共数据是最为合适的。

const与static的区别是什么?

const 是常量, 也就是只读的, 是一个"右值"

比如

const int iRet = 2 ;

iRet = 3 ; // 这句是错的, const类型只能在初始化的时候赋值, 之后不能改变

static称为静态变量, static有两种, 一种是在类的成员变量中, 一种是局部变量或全局变量.

在类中的, 用代码解释

class exp {

static int i1 ;

int i2 ;

} ;

int main() {

exp e1 ;

exp e2 ;

e1.i1 = 5 ;

e1.i2 = 10 ;

e2.i1 = 15 ;

e2.i2 = 20 ;

cout e1.i1 endl ; //这是输出的会是15

cout e1.i2 endl ; // 这里输出是10

return 0 ;

}

类中的static变量的意思是, 在这个类的所有实例中的值都是一样的, 它与const不同, const 只是只读, 在其他方面与不带const的变量没什么区别

还有一种是const全局变量或局部变量, 这两种是相同的, 局部变量的作用域会和全局变量相同

上代码:

static int i1 ;

int add(int a, int b) {

static int c = a + b ;

return c ;

}

void main() {

add(5, 8);

int result = c ; //这里 result会是13 无论static变量 是全局的还是局部的, 作用域都和全局变量相同

coutresultendl;

}

还有几点static的特点,(适用于static全局变量或局部变量)

1.static变量在全局数据区分配内存, 也就是 在生成的可执行文件中占一定空间, 这点与全局变量相同

2.static变量只在它所在的源文件中可用. 如果一个项目有很多 .c或者.cpp文件, static变量可以出现在每一个文件中, 而他们却是不同的, static可以解决许多文件中变量 名字相同的问题.

const与static的区别

const 是常量, 也就是只读的, 是一个"右值"

比如

const int iRet = 2 ;

iRet = 3 ; // 这句是错的, const类型只能在初始化的时候赋值, 之后不能改变

static称为静态变量, static有两种, 一种是在类的成员变量中, 一种是局部变量或全局变量.

在类中的, 用代码解释

class exp {

static int i1 ;

int i2 ;

} ;

int main() {

exp e1 ;

exp e2 ;

e1.i1 = 5 ;

e1.i2 = 10 ;

e2.i1 = 15 ;

e2.i2 = 20 ;

cout e1.i1 endl ; //这是输出的会是15

cout e1.i2 endl ; // 这里输出是10

return 0 ;

}

类中的static变量的意思是, 在这个类的所有实例中的值都是一样的, 它与const不同, const 只是只读, 在其他方面与不带const的变量没什么区别

还有一种是const全局变量或局部变量, 这两种是相同的, 局部变量的作用域会和全局变量相同

上代码:

static int i1 ;

int add(int a, int b) {

static int c = a + b ;

return c ;

}

void main() {

add(5, 8);

int result = c ; //这里 result会是13 无论static变量 是全局的还是局部的, 作用域都和全局变量相同

coutresultendl;

}

还有几点static的特点,(适用于static全局变量或局部变量)

1.static变量在全局数据区分配内存, 也就是 在生成的可执行文件中占一定空间, 这点与全局变量相同

2.static变量只在它所在的源文件中可用. 如果一个项目有很多 .c或者.cpp文件, static变量可以出现在每一个文件中, 而他们却是不同的, static可以解决许多文件中变量 名字相同的问题.

const static区别

Static与Const的区别

static

static局部变量 将一个变量声明为函数的局部变量,那么这个局部变量在函数执行完成之后不会被释放,而是继续保留在内存中

static 全局变量 表示一个变量在当前文件的全局内可访问

static 函数 表示一个函数只能在当前文件中被访问

static 类成员变量 表示这个成员为全类所共有

static 类成员函数 表示这个函数为全类所共有,而且只能访问静态成员变量

const

const 常量:定义时就初始化,以后不能更改。

const 形参:func(const int a){};该形参在函数里不能改变

const修饰类成员函数:该函数对成员变量只能进行只读操作

static关键字的作用:

(1)函数体内static变量的作用范围为该函数体,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值;

(2)在模块内的static全局变量和函数可以被模块内的函数访问,但不能被模块外其它函数访问;

(3)在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝;

(4)在类中的static成员函数属于整个类所拥有,这个函数不接收this指针,因而只能访问类的static成员变量。

const关键字的作用:

(1)阻止一个变量被改变

(2)声明常量指针和指针常量

(3)const修饰形参,表明它是一个输入参数,在函数内部不能改变其值;

(4)对于类的成员函数,若指定其为const类型,则表明其是一个常函数,不能修改类的成员变量;

(5)对于类的成员函数,有时候必须指定其返回值为const类型,以使得其返回值不为”左值”。

c#中const和static的区别分别是什么

const是常量,不可变的值。

static是静态修饰符,表示这个成员不是某个单独对象所有,而是对象所属的类所有的。

static变量是可变的,通过类名.成员名来访问。

static除了修饰变量,还可以修饰属性、方法、类等。

如满意,请及时采纳,谢谢。

(责任编辑:IT教学网)

更多

推荐微软认证文章