请老师指点printf打印常量和变量的区别
本帖最后由 wow7jiao 于 2018-6-19 21:23 编辑#include<stdio.h>
int main()
{
int a = 1:
printf("%d\n", a);
return 0;
}
和
int main()
{
printf("%d\n", 1);
return 0;
}
区别,我直接放个常量进去也可以打印,printf的参数可以地址或常量。
这个区别你是否满意?
总的来说没区别。
就是把信息打印出来。
如果硬要说区别的话,变量在运行的过程中打印会改变,常量不会。 ba21 发表于 2018-6-19 21:35
总的来说没区别。
就是把信息打印出来。
如果硬要说区别的话,变量在运行的过程中打印会改变,常量不会。
变量是有地址的,常量没有地址吧 人造人 发表于 2018-6-19 21:37
这个区别你是否满意?
能对常量取址吗& wow7jiao 发表于 2018-6-19 21:55
能对常量取址吗&
这么简单的问题试一下不就知道了
^_^
人造人 发表于 2018-6-19 22:09
这么简单的问题试一下不就知道了
^_^
lvalue要求是符号外加可以改变的,常量的地址不能改变,但是这不能证明常量是没有地址的吧 wow7jiao 发表于 2018-6-19 22:25
lvalue要求是符号外加可以改变的,常量的地址不能改变,但是这不能证明常量是没有地址的吧
常量不需要存放到内存中,常量直接包含在指令中
不在内存中存放,当然也不会有地址,也不能取得常量的地址
但是,指令是存放在内存中的,包含常量的指令是存放在内存中的,那么也就是常量有地址,只是不能用 “普通方法” 得到这个地址?
^_^
wow7jiao 发表于 2018-6-19 22:25
lvalue要求是符号外加可以改变的,常量的地址不能改变,但是这不能证明常量是没有地址的吧
这么说来,常量的地址 “好像真的”不能被改变
^_^
页:
[1]