我无法理解:
#define WIDTH 10
和
int width = 10;
使用第一种或第二种有什么好处?
最佳答案
嗯,有很大的不同。你可以改变 width
的值,你可以获取它的地址,你可以询问它的大小等等。使用 WIDTH
时,它会在任何地方被常量 10
替换,因此表达式 ++WIDTH
没有任何意义。另一方面,您可以声明一个包含 WIDTH
项的数组,而您不能声明一个包含 width
项的数组。
总结:WIDTH
的值在编译时已知,无法更改。编译器不会为 WIDTH
分配内存。相反,width
是一个初始值为 10 的变量,其进一步的值在编译时是未知的;变量从编译器获取内存。
关于c - #Define VS 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11079450/