宏变量和变量赋值的区别

请问宏变量是特殊字符+字符串(eg:#decide PI 3.1415)为什么不能直接写成a=3.1415的形式

效果差不多
宏定义在使用的时候是简单的字符替换,比如你的例子中,在代码中遇到PI的地方,就把PI替换成3.1415
变量则需要申请内存。
宏定义不可修改
变量的值是可以修改的。但是如果用const修饰变量,那么就变成常量了,值也是不可修改的。
比如
float a=3.1415;这里的a是变量
const float a=3.1415;这里的a就是常量

这个是语法
相当于把3.14赋值给PI
但是是一个静态的常量

宏变量会在编译时(还是编译前来着)对文本进行扫描替换,也就是int a = pi;这种会被直接替换为int a =3.14159;的格式,直接写有可能会在程序中被改动,使用const int pi=3.14这种写法就是将pi是做一个变量而不是直接代码替换
有帮助望采纳