wow7jiao 发表于 2018-6-19 21:19:25

请老师指点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的参数可以地址或常量。

人造人 发表于 2018-6-19 21:19:26

这个区别你是否满意?


ba21 发表于 2018-6-19 21:35:59

总的来说没区别。
就是把信息打印出来。
如果硬要说区别的话,变量在运行的过程中打印会改变,常量不会。

wow7jiao 发表于 2018-6-19 21:54:38

ba21 发表于 2018-6-19 21:35
总的来说没区别。
就是把信息打印出来。
如果硬要说区别的话,变量在运行的过程中打印会改变,常量不会。

变量是有地址的,常量没有地址吧

wow7jiao 发表于 2018-6-19 21:55:30

人造人 发表于 2018-6-19 21:37
这个区别你是否满意?

能对常量取址吗&

人造人 发表于 2018-6-19 22:09:34

wow7jiao 发表于 2018-6-19 21:55
能对常量取址吗&

这么简单的问题试一下不就知道了
^_^

wow7jiao 发表于 2018-6-19 22:25:39

人造人 发表于 2018-6-19 22:09
这么简单的问题试一下不就知道了
^_^

lvalue要求是符号外加可以改变的,常量的地址不能改变,但是这不能证明常量是没有地址的吧

人造人 发表于 2018-6-19 22:31:30

wow7jiao 发表于 2018-6-19 22:25
lvalue要求是符号外加可以改变的,常量的地址不能改变,但是这不能证明常量是没有地址的吧

常量不需要存放到内存中,常量直接包含在指令中
不在内存中存放,当然也不会有地址,也不能取得常量的地址

但是,指令是存放在内存中的,包含常量的指令是存放在内存中的,那么也就是常量有地址,只是不能用 “普通方法” 得到这个地址?
^_^

人造人 发表于 2018-6-19 22:32:40

wow7jiao 发表于 2018-6-19 22:25
lvalue要求是符号外加可以改变的,常量的地址不能改变,但是这不能证明常量是没有地址的吧

这么说来,常量的地址 “好像真的”不能被改变
^_^
页: [1]
查看完整版本: 请老师指点printf打印常量和变量的区别