社区
C语言
帖子详情
菜问题:如何声明全局常量?const int t = 10; 引用时extern const int i = 10?
lp2
2004-06-25 11:01:32
对于全局常量,大家是不是喜欢用来声明全局数组,如extern const int a[8][4]。
...全文
256
19
打赏
收藏
菜问题:如何声明全局常量?const int t = 10; 引用时extern const int i = 10?
对于全局常量,大家是不是喜欢用来声明全局数组,如extern const int a[8][4]。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
19 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rkhw
2004-07-02
打赏
举报
回复
在 .cpp 文件里出现类似 int a;、const double d; 等等会被实例化,即在内存中被分配了内存。但是,在 .h 文件里出现的类似 int a;、const double d; 等等不会被实例化,即不会在内存中被分配内存。
是这样吗?
a1dao
2004-06-25
打赏
举报
回复
同意楼上的~~
peter9606
2004-06-25
打赏
举报
回复
应该是这样的
在1.cpp中
extern const int CONSTINT = 100 ;
在2.cpp中
extern const int CONSTINT ;
晨星
2004-06-25
打赏
举报
回复
外部引用时不要赋值。
extern仅仅表示这里需要引用一个在另一个文件中定义的东东,所以这个东东的初试值由那个文件负责。
MyNameEPC
2004-06-25
打赏
举报
回复
在 .cpp 文件里出现类似 int a;、const double d; 等等会被实例化,即在内存中被分配了内存。但是,在 .h 文件里出现的类似 int a;、const double d; 等等不会被实例化,即不会在内存中被分配内存。如:
/* Global.h */
int n; // declaration
double d; // declaration
/* Global.cpp */
int n; // definition
//double d; we have not defined d
/* main.cpp */
int main()
{
extern n = 10; // okey!
extern d = 1.6; // linkage error!
}
leonchew
2004-06-25
打赏
举报
回复
是的。
const int t = 10; 引用时extern const int i 就可以
eronic
2004-06-25
打赏
举报
回复
是的
talkingmute
2004-06-25
打赏
举报
回复
是的!
qwertasdfg123
2004-06-25
打赏
举报
回复
ok
Justin2003
2004-06-25
打赏
举报
回复
yes
A_cool
2004-06-25
打赏
举报
回复
public class test
{
public final static String TMP_CONST_UNACCEPT = "常量";
}
我是这样定义的
junnyfeng
2004-06-25
打赏
举报
回复
知道了还问?
peter9606
2004-06-25
打赏
举报
回复
extern int a = 10
一样可以定义分配内存空间的
tuqvb
2004-06-25
打赏
举报
回复
楼上说得并不准确,应该是extern告诉编译器在其他obj文件中查找为该变量分配的内存空间
sclarkca810619
2004-06-25
打赏
举报
回复
yeah extant is only tell you that"ok,you have the same value and name in two files,",no other means!
tuqvb
2004-06-25
打赏
举报
回复
在我机器上是通过的
而且我要指出的是,在两处都使用extern声明的话是错误的
因为extern仅仅是声明,没有定义,没有为变量分配任何内存空间
peter9606
2004-06-25
打赏
举报
回复
To tuqvb(风间苍月)
你试过了?可以么? 怀疑 ing
tuqvb
2004-06-25
打赏
举报
回复
在定义一个变量时不需要使用extern
而在引用一个外部变量时才需要使用extern
比如在1.cpp
int CONSTINT= 100;
在2.cpp
extern int CONSTINT;
CONSTINT= ppmm;
peter9606
2004-06-25
打赏
举报
回复
不过偶不知道为什么
extern
const
的用法
问题
一 1.cpp
extern
const
int
i; //
const
int
i = 1;
const
int
i = 1; //
extern
const
int
i;
int
main(){return 0;} 2.cpp
extern
const
int
i = 2; 为什么这样不能通过链接,而如果按注释里的顺序就能通过链接,这个怎么解释呢?
问题
二 在C++中,定义一个
全局
的符号
常量
。 在a.cpp中定义
extern
const
double pi=3.14; b.pp中
声明
extern
con
C++:
const
分配内存情况分析
//1、局部变量
const
int
a =
10
;
int
* p = &a //分配临
时
内存指针不可修改
const
int
a =
10
; 这句话表示
const
int
a是存放在符号表中的
常量
,a是键,
10
是值。 平
时
是不分配空间的。
int
* p = &a,这句话的
时
候,系统会临
时
在栈区分配一个临
时
空间temp,temp空间的值是
10
.之后将临
时
空间的...
C++ | 初识
const
关键字、
常量
与常变量
C++笔记:常指针之——指针
常量
与
常量
指针
const
int
*p;
int
const
*p; //
const
与
int
不分先后,意义相同。 此类指针我们称之为
常量
指针。顾名思义,指针指向的值是一个
常量
(语法上的,编译器认为该值不可通过指针修改)。记忆方法:
const
修饰的 (P),p解
引用
就是指针所指向之值,所以
常量
指针修饰的值为
常量
(不可做左值被修改)。 示例代码:{
int
a =
10
;
const
int
p = &a;
int
q = p; // 此语句错误的,
C和C++中经
const
修饰的
常量
、常变量和普通变量的区别
1.在C89标准下的
const
const
修饰的类型是一个常变量,不能作为数组的下标。常变量不能作为左值。 如:
const
int
a =
10
;
int
b = a; //其编译的过程和一般变量编译的过程相同 //并不会把
引用
符号的地方替换为对应的数据 2.C++99 (1)
常量
:在c++中,
const
int
a =
10
是一个真真正正的
常量
。 (2)常变量:退化为常变量的情况...
C和C++中
const
变量内存分配
问题
详解
一、
const
变量的内存分配 1.
const
全局
变量,或者static,
extern
关键字 此
时
该
常量
是存放在.rodata段的—Read Only Data也就是
常量
区,是无法通过取地址方式去修改的,修改内容会报段错误(gcc++编译器:Segmentation fault(core dumped))。 例如
extern
const
int
i=
10
, static
const
int
i=
10
。 2.
const
局部变量 在C语言中,
const
局部变量在栈分配内存,不能通过赋值,自
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章