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

 我来答
MYM光头强
推荐于2016-03-03 · TA获得超过341个赞
知道答主
回答量:594
采纳率:0%
帮助的人:82.4万
展开全部
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规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放;
C_大白痴
2010-11-08 · TA获得超过261个赞
知道小有建树答主
回答量:220
采纳率:0%
帮助的人:268万
展开全部
对于C/C++语言来讲,
const就是只读的意思,只在声明中使用;
static一般有2个作用,规定作用域和存储方式.对于局部变量,static规定其为静态存储方式,每次调用的初始值为上一次调用的值,调用结束后存储空间不释放;
对于全局变量,如果以文件划分作用域的话,此变量只在当前文件可见;对于static函数也是在当前模块内函数可见.
static const 应该就是上面两者的合集.
下面分别说明:
全局:
const,只读的全局变量,其值不可修改.
static,规定此全局变量只在当前模块(文件)中可见.
static const,既是只读的,又是只在当前模块中可见的.
文件:
文件指针可当作一个变量来看,与上面所说类似.
函数:
const,返回只读变量的函数.
static,规定此函数只在当前模块可见.
类:
const,一般不修饰类,(在VC6.0中试了一下,修饰类没啥作用)
static,C++中似乎没有静态类这个说法,一般还是拿类当特殊的变量来看.C#中有静态类的详细说明,且用法与普通类大不相同
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
徐光猪
2010-11-08 · TA获得超过4167个赞
知道大有可为答主
回答量:1299
采纳率:50%
帮助的人:1730万
展开全部
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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式