#define N 3是宏定义,在编译之前,编译器会把它在引用的地方进行原文替换,如果代码中多次引用了这个宏定义,编译器就在每个地方用宏定义的内容原文替换。 const int N =3 的作用是变量时固定不变的,不能被修改,多次引用的时候,编译器到内存中N的位置去读取,而没有在每个位置都拷贝一个. const常量有数据类型,define没有数据类型,编译器对前者进行安全类型检查,而对于后者只进行字符串的替换。const在编译时分配存储空间; 而#define在预编译时编译,不分配存储空间。
#define N 3是宏定义,在编译之前,编译器会把它在引用的地方进行原文替换,如果代码中多次引用了这个宏定义,编译器就在每个地方用宏定义的内容原文替换。 const int N =3 的作用是变量时固定不变的,不能被修改,多次引用的时候,编译器到内存中N的位置去读取,而没有在每个位置都拷贝一个. const常量有数据类型,define没有数据类型,编译器对前者进行安全类型检查,而对于后者只进行字符串的替换。const在编译时分配存储空间; 而#define在预编译时编译,不分配存储空间。