社区
C语言
帖子详情
用&取地址时,为什么可以对诸如"Hello"的字符串常量使用,却不能对#define PI 3.1415926的浮点型常量使用?
Asskicker_Ryan
2014-11-30 02:10:50
RT
例如
&"Hello"是合法的,而 &PI 则不行?
...全文
451
9
打赏
收藏
用&取地址时,为什么可以对诸如"Hello"的字符串常量使用,却不能对#define PI 3.1415926的浮点型常量使用?
RT 例如 &"Hello"是合法的,而 &PI 则不行?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luotuo44
2014-12-01
打赏
举报
回复
"Hello"占用了内存,所以有内存地址。而仅仅是一个值的话,是不占用内存的。没有占用内存,当然就没有内存地址可言。 如果是const double PI = 3.1415925;那么PI就是一个变量,需要占用内存,此时就有地址可言了。
赵4老师
2014-12-01
打赏
举报
回复
编译期 运行期
「已注销」
2014-12-01
打赏
举报
回复
#4一语道破
ZG
2014-12-01
打赏
举报
回复
分配了实实在在的内存,才能取到地址, #define PI 3.14.... 在预处理阶段PI就直接被替换成3.14..了,程序是看不到PI的,它所知道的就是3.14...这个常量数字 const double PI = 3.1415925,PI是一个变量,double型的,编译器为其分配了空间,只不过由于有const修饰这个空间只读 hello,字符串常量,编译器为其在文字常区分配空间,同样只可读 想要完全了解,写一个简单的,然后反汇编
wang0635
2014-11-30
打赏
举报
回复
&PI 经过编译预处理后变成了 &3.1415925 而"Hello"是在内存中连续存放的
relaxisland
2014-11-30
打赏
举报
回复
因为 #define PI 3.1415926 不是常量,是宏定义 过了编译阶段,在程序运行阶段,是不存在的
Asskicker_Ryan
2014-11-30
打赏
举报
回复
引用 2 楼 zhouchongzxc 的回复:
这个很简单的吧 movl $10, %edx 你知道 10 会放在哪里吗?
小弟菜鸟请指教 movl $10, %edx是什么意思。。。看不懂
ChongQingJin28
2014-11-30
打赏
举报
回复
这个很简单的吧 movl $10, %edx 你知道 10 会放在哪里吗?
Asskicker_Ryan
2014-11-30
打赏
举报
回复
经过试验发现 用#define 定义的PI 不能使用&符号取地址, 而用const double PI = 3.1415925;就可以。请问是为什么呢?
C语言期末考试全部知识点复习资料--重点常考点.pdf
例如,正确的宏定义应该是`#
define
PI
3.1415926
`,而不是`#
define
PI
3.1415926
;`。 #### 5. C语言程序结构 - 源程序文件扩展名为`.c`。 - 经过编译器编译后生成目标文件(`.obj`),再通过连接器链接生成可执行文件...
c++宏的
使用
总结.pdf
在上面的例子中,`PRINT_STR`被定义为一个
字符串
常量
。这种方式特别适用于需要频繁修改的值,比如国际化
字符串
。 #### 五、定义带有逻辑的宏 宏还可以用来定义带有逻辑的功能,例如: ```cpp #ifdef _DEBUG #...
C语言字符型数据详解
- `#
define
PI
3.1415926
` - `#
define
TRUE 1` - `#
define
FALSE 0` - `#
define
STAR '*'` **示例:** - `printf("%f",
PI
);` // 输出为:3.141593 **注意事项:** - 符号
常量
的定义通过 `#
define
` 指令完成。 - ...
第基本数据类型运算符与表达式PPT学习教案.pptx
-
字符串
常量
:连续的字符,用双引号包围,如"
hello
"。 - 符号
常量
:通过#
define
定义,如`#
define
PI
3.1415926
`。 学习这些基础知识对于理解和编写C语言程序至关重要,因为它们构成了程序的基本元素和逻辑结构。...
C++与操作系统等面试题7
#
define
PI
3.1415926
// 定义一个宏
常量
PI
``` 对于字面值
常量
(Literal Constant),它们是语言内置的一部分,例如数字、字符和
字符串
字面量,可以直接在代码中
使用
,不需要显式声明。 ###
常量
的存储位置 ####...
C语言
70,023
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章