社区
Linux/Unix社区
帖子详情
C 真正的变量
小魔菇
2010-06-12 03:40:51
我看C专家编程中说
const int i = 2;
i并不是真正的常量
因为不能在switch的case中被使用
我用#define i 2 就可以了
想请教的是 为什么const int i = 2定义的就不是常量了?
这里的2不是不能被改变吗?
而define就可以了
请高手指点之下 谢谢
...全文
395
27
打赏
收藏
C 真正的变量
我看C专家编程中说 const int i = 2; i并不是真正的常量 因为不能在switch的case中被使用 我用#define i 2 就可以了 想请教的是 为什么const int i = 2定义的就不是常量了? 这里的2不是不能被改变吗? 而define就可以了 请高手指点之下 谢谢
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
27 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
testoftesttest
2010-06-18
打赏
举报
回复
const int i = 2; 支持寻址 &i
#define i 2 不支持寻址&i
sabflying
2010-06-18
打赏
举报
回复
不错,变量不能用于分配栈空间
viinku
2010-06-16
打赏
举报
回复
学习了,常量和立即数
xx说就叫这个名字
2010-06-16
打赏
举报
回复
所以这种情况c是不允许的:
const int N = 10;
char str[N]; //这样是不允许的!因为N是一个只读变量,只是变量!
#define N 10
char str[N]; //这样是对的!
xx说就叫这个名字
2010-06-16
打赏
举报
回复
只读变量,常量!
在c语言中加const表示的就是只读变量,记住它是一个变量!而在c++中它就是一个常量;
在c中define宏定义的就是一个常量!
快乐田伯光
2010-06-14
打赏
举报
回复
常量就是常量,立即数就是立即数, 这二者怎么可以等同呢?
常量是放在数据段的, 而立即数是在代码段里头的,两者根本就不是一回事.
[Quote=引用 18 楼 yjzl1911 的回复:]
引用 14 楼 cceczjxy 的回复:
引用 12 楼 yjzl1911 的回复:
引用 11 楼 cceczjxy 的回复:
引用 10 楼 guosha 的回复:
#define i 2怎么会是一个常量呀? 这不就是一个立即数嘛.
对,他只是一个宏,不能算常量
宏展开后是一个立即数,立即数不就是一个整型常量吗?
展开后是个立即数不假,但好像不能把立即数和整……
[/Quote]
小魔菇
2010-06-14
打赏
举报
回复
在C专家编程里面说的
通过#define 和 enum定义的才是常量
xinzaiyiqi
2010-06-14
打赏
举报
回复
学习了
yjzl1911
2010-06-14
打赏
举报
回复
[Quote=引用 19 楼 guosha 的回复:]
常量就是常量,立即数就是立即数, 这二者怎么可以等同呢?
常量是放在数据段的, 而立即数是在代码段里头的,两者根本就不是一回事.
引用 18 楼 yjzl1911 的回复:
引用 14 楼 cceczjxy 的回复:
引用 12 楼 yjzl1911 的回复:
引用 11 楼 cceczjxy 的回复:
引用 10 楼 guosha 的回复:
#define i 2怎么会是一……
[/Quote]
翻了下资料 立即数和常量不是一个概念 :立即数应该是汇编里的术语;而常量是c语言里的术语
jo_say
2010-06-13
打赏
举报
回复
god
yjzl1911
2010-06-13
打赏
举报
回复
[Quote=引用 14 楼 cceczjxy 的回复:]
引用 12 楼 yjzl1911 的回复:
引用 11 楼 cceczjxy 的回复:
引用 10 楼 guosha 的回复:
#define i 2怎么会是一个常量呀? 这不就是一个立即数嘛.
对,他只是一个宏,不能算常量
宏展开后是一个立即数,立即数不就是一个整型常量吗?
展开后是个立即数不假,但好像不能把立即数和整形常量等同
[/Quote]
恩 我可能说得不到位 我的意思是 在楼主所说的情况 i展开后的立即数5是一个整型常量。不过 立即数的定义是什么? 我的理解是 立即数其实就是常量 只是类型可能有多种 如 整型 浮点型 等等
louyong0571
2010-06-13
打赏
举报
回复
学习了
cffa_edfe
2010-06-13
打赏
举报
回复
C不是,C++可以
cceczjxy
2010-06-12
打赏
举报
回复
[Quote=引用 12 楼 yjzl1911 的回复:]
引用 11 楼 cceczjxy 的回复:
引用 10 楼 guosha 的回复:
#define i 2怎么会是一个常量呀? 这不就是一个立即数嘛.
对,他只是一个宏,不能算常量
宏展开后是一个立即数,立即数不就是一个整型常量吗?
[/Quote]
展开后是个立即数不假,但好像不能把立即数和整形常量等同
cceczjxy
2010-06-12
打赏
举报
回复
[Quote=引用 11 楼 cceczjxy 的回复:]
引用 10 楼 guosha 的回复:
#define i 2怎么会是一个常量呀? 这不就是一个立即数嘛.
对,他只是一个宏,不能算常量
[/Quote]
自己给自己的:
我错了
yjzl1911
2010-06-12
打赏
举报
回复
[Quote=引用 11 楼 cceczjxy 的回复:]
引用 10 楼 guosha 的回复:
#define i 2怎么会是一个常量呀? 这不就是一个立即数嘛.
对,他只是一个宏,不能算常量
[/Quote]
宏展开后是一个立即数,立即数不就是一个整型常量吗?
cceczjxy
2010-06-12
打赏
举报
回复
[Quote=引用 10 楼 guosha 的回复:]
#define i 2怎么会是一个常量呀? 这不就是一个立即数嘛.
[/Quote]
对,他只是一个宏,不能算常量
快乐田伯光
2010-06-12
打赏
举报
回复
#define i 2怎么会是一个常量呀? 这不就是一个立即数嘛.
太乙
2010-06-12
打赏
举报
回复
[Quote=引用 6 楼 eclipse_2 的回复:]
引用 3 楼 hqin6 的回复:
Assembly code
#include <iostream>
using namespace std;
int main()
{
const int i = 10;
int* p = const_cast<int*>(&i);
cout << hex << p << endl;
cout << hex << &……
[/Quote]你需要去掉编译器的优化~~~即使用:*((int*)&i)
jiangfeng999
2010-06-12
打赏
举报
回复
学习了,ding
加载更多回复(7)
C语言
变量
变量
定义告诉编译器分配存储空间,格式为数据类型
变量
名;,如int age;。初始化可同时进行,如int x = 10;,或稍后赋值x = 20;。未初始化
变量
可能含垃圾值,建议在使用前初始化。
变量
是程序可操作的存储区的名称,实质上是内存中一段连续存储空间的别名。C语言中,每个
变量
都有特定的类型,决定了其内存大小、布局和可存储的值范围,以及可以应用于
变量
的操作。
变量
名由字母、数字和下划线组成,必须以字母或下划线开头,C语言区分大小写,例如Manpower和manpower是不同的。
c语言
变量
详解
在本博客中,我们将深入探讨C语言中
变量
的各个方面,从基础的
变量
声明和初始化到更高级的主题,如
变量
的作用域。通过了解和掌握
变量
的概念,读者将更好地理解C语言的设计哲学,为编写高效、健壮的程序奠定坚实的基础。让我们一同踏上这个关于C语言
变量
的学习之旅。
c语言中
变量
的,c语言中
变量
的定义
任何一种编程语言都离不开
变量
,特别是数据处理型程序,
变量
的使用非常频繁,没有
变量
参与程序甚至无法编制,即使编制运行后的意义也不大。
变量
之所以重要,是因为
变量
是编程语言中数据的符号标识和载体。C语言是一种应用广泛的善于实现控制的语言,
变量
在C语言中的应用更是灵活多变。那么
变量
究竟是什么呢?
变量
是内存或寄存器中用一个标识符命名的 存储单元,可以用来存储一个特定类型的数据,并且数据的值在程序运行过程中可...
c语言
变量
大全,C语言
变量
本篇文章帮大家学习c语言
变量
,包含了C语言
变量
使用方法、操作技巧、实例演示和注意事项,有一定的学习价值,大家可以用来参考。
变量
是内存位置的名称。它用于存储数据。其值可以更改,可以重复使用多次。它是通过符号表示内存位置的方法,以便可以容易识别。我们来看一下声明一个
变量
的语法:type variable_list;声明
变量
的例子如下:int a;float b;char c;这里,a,b,c是
变量
,它...
Linux/Unix社区
23,224
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章