有区别。
#define N 3 是在预处理时处理,编译器扫描时将使用N的地方全部替换为3;
const int N 3 是在编译的时候处理,编译器将在数据区生成一个只读(不可改变)变量。
用的时候很少有区别
但其实还是有区别的,比如const int N = 3
这里加了类型int,而define N 3不加类型,从这个地方就能看出来define只是做文本替换(将N换成3),而const 定义常量的话会检查数据类型
#define N 3是宏定义,在编译之前,编译器会把它在引用的地方进行原文替换,如果代码中多次引用了这个宏定义,编译器就在每个地方用宏定义的内容原文替换。
const int N =3 的作用是变量时固定不变的,不能被修改,多次引用的时候,编译器到内存中N的位置去读取,而没有在每个位置都拷贝一个
没区别。都是定义常量。