static和const的用法有什么区别?

如题所述

const 是常量修饰符
(1)在定义变量的时候是没有说明区别的;
例如:const int a; int const a;
但是定义此类变量时,一般放在前面!
(2)在定义改类型的指针时,就有三种定义方式,并且意义是不一样的;
a.指向const对象的指针;例如:const double pi = 3.14, ppi = 6.28, *ptr; ptr = π ptr = &ppi;这样是可以的,但是不能通过
ptr来改变所指对象的值,比如给 *ptr = 2.3;这样是不行的,
b.const指针;例如:int a; int const *ip = &a; ip不能在指向其他对象了;
c.指向const对象的const指针,这样定义出来的对象,一旦初始化,就不会在改变了;
static局部变量:static规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放;
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-11-08
对于C/C++语言来讲,
const就是只读的意思,只在声明中使用;
static一般有2个作用,规定作用域和存储方式.对于局部变量,static规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放;
对于全局变量,如果以文件划分作用域的话,此变量只在当前文件可见;对于static函数也是在当前模块内函数可见.
static const 应该就是上面两者的合集.
下面分别说明:
全局:
const,只读的全局变量,其值不可修改.
static,规定此全局变量只在当前模块(文件)中可见.
static const,既是只读的,又是只在当前模块中可见的.
文件:
文件指针可当作一个变量来看,与上面所说类似.
函数:
const,返回只读变量的函数.
static,规定此函数只在当前模块可见.
类:
const,一般不修饰类,(在VC6.0中试了一下,修饰类没啥作用)
static,C++中似乎没有静态类这个说法,一般还是拿类当特殊的变量来看.C#中有静态类的详细说明,且用法与普通类大不相同
第2个回答  2010-11-08
static是定义一个静态变量,存在于整个文件,只有main退出了这个变量才会被系统释放

const是定义一个常量,既是将一个变量变成常量

程序例子

#include <iostream>
using namespace std;

int f()
{
static int i=1;
return i++;
}

int t()
{
int a=10;
return a++;
}

int main()
{
int const b=1; //b是一个常量
cout<<f()<<endl;
cout<<f()<<endl; //f()第一次释放,i还存在并进行了++
cout<<t()<<endl;
cout<<t()<<endl; //t()释放,++是没有用的

return 0;
}

static和const的用法有什么区别?
const 是常量修饰符 (1)在定义变量的时候是没有说明区别的;例如:const int a; int const a;但是定义此类变量时,一般放在前面!(2)在定义改类型的指针时,就有三种定义方式,并且意义是不一样的;a.指向const对象的指针;例如:const double pi = 3.14, ppi = 6.28, *ptr; ptr =...

static和const的区别
作用不同、生命周期不同。1、static表示一个变量为全类共有,或者一个函数只在当前文件可用。const表示一个常量在定义时就初始化,之后不能被修改。2、static表示一个变量的生命周期是整个程序的运行期间。const的生命周期是它被声明开始,直到程序结束。

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

static和const的区别和用处
static 全局唯一,在代码块范围内访问,在进程结束前内存不会释放。const 属于局部变量,代码块跳出时内存释放;直接访问会使编译器报错。

const和static const的区别
const和static const的区别:一、全局的区别 const规定变量在全局中是只读的变量,并且它的值无法被修改。static const规定变量在当前的模块中是只读的变量,无法再全局中被其他模块读取。二、文件的区别 const定义的指针,不赋初值编译时不报错,在初始化时应说明指针的指向。static const不能在定义对象时...

static 与const 有什么区别?
static是静态存储,指明变量不消失,可以修改。const是不能修改变量。

const与static
const 是常量,即从程序运算开始到结束,数值不变的量。static 用于变量,声明这个变量的存储单元静态分配,从程序运算开始到结束这个变量的存储单元不变化。static常用于全局量,一是存在里面的值始终有效,不因进退出子程序数值消失,另外static的变量运算速度比非静态分配的快。常量是不出现在等号左边的。

const和static const的区别
至于类的处理,C++中并没有静态类的直接概念,通常类不会被static修饰。C#中则有静态类,它与普通类的用法截然不同,提供了特定的类级别特性。总结来说,const和static const在C\/C++中的区别主要在于变量的可读性、存储持久性、作用域和类的修饰用法。理解这些差异有助于编写更有效、易于维护的代码。

const与static有什么区别
static 是c++中非常常用的修饰符,他被用来控制变量的存储方式和可见性,下面我将从 static 修饰符的产生原因、作用谈起,全方面分析static 修饰符的实质。static 的两大作用:一、控制存储方式:static被引入以告知编译器,将变量存储在程式的静态存储区而非栈上空间。1、引出原因:函数内部定义的变量,...

const与static有什么区别
如果把const放在变量类型名前,说明这个变量的值是保持不变的,该变量必须在定义时初始化,初始化后对它进行的任何赋值都是非法的。static 是静态变量

相似回答