#define来自C,const产生于C++。区别在于使用const修饰符定义常量是类型化的,它有地址,可以用指针指向,但不能修改它的值。
// 指向常量的指针
const char *name = "chen";
name[3]='a'; //wrong
name="zhang"; //right
const char *name = "chen";
name[3]='a'; //wrong
name="zhang"; //right
//常指针
char *const name = "chen";
name[3]='a'; //right
name="zhang"; //wrong
char *const name = "chen";
name[3]='a'; //right
name="zhang"; //wrong
//指向常量的常指针
const char *const name = "chen";
name[3]='a'; //wrong
name="zhang"; //wrong
const char *const name = "chen";
name[3]='a'; //wrong
name="zhang"; //wrong
说明:
1.如果没有给常量初值,C++假定初始值为零。
2.用const定义常量,C++编译器可以进行严格的类型检查。
3.#define是在预处理时起作用,相当于"查找并替换"。
本文探讨了C++中的const关键字与C语言中的#define指令的主要区别。const定义的常量支持类型检查且拥有地址,而#define则在预处理阶段进行简单的字符串替换。文章还介绍了使用const定义不同类型常量的示例。
1270

被折叠的 条评论
为什么被折叠?



