黑马程序员技术交流社区

标题: 关于用const定义的不可变常量疑惑? [打印本页]

作者: 李承伟    时间: 2012-8-6 08:25
标题: 关于用const定义的不可变常量疑惑?
学过C语言的应该都知道,在C语言中有一个符号常量的概念,我觉得就类似于C#中所说到的用const定义的常量;
C语言中定义一个符号常量:# define PI 3.14   符号常量只是一个符号,不占存储单元,只是简单地进行字符置换,不论置换的字符是否有含义都进行置换,符号常量只是符号,不是变量,不能被赋值,也不能对符号常量指定类型 (这是C语言中对有关符号常量的一点东西)
那么在C#语言中,用const定义一个常量是:
                                                                      const double PI = 3.14;
类似于定义常量,不同是在前加const,相比符号常量,const定义的常量可以对其指定类型,除此之外,还有什么异同?实为不解?

作者: 李晋    时间: 2012-8-6 09:06
define预定义,只是符号,肯定不占内存,它的作用只是把一串字符用一个符号表示,在编译的时候已经处理了。const是常量,肯定要分配内存
作者: 许庭洲    时间: 2012-8-6 09:11
1,C语言中的常量通常放在main()主函数外面,与#include ""放在一起;
2,而C#中的常量通常放在类里面,而且有数据类型进行修饰,在C语言中宏常量没有数据类型修饰;
3,在C#中,const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2