想请问一下在C语言中#define N 3 和 const int N=3这两个有区别吗

2025-02-27 03:11:15
推荐回答(4个)
回答1:

有区别。
#define N 3 是在预处理时处理,编译器扫描时将使用N的地方全部替换为3;
const int N 3 是在编译的时候处理,编译器将在数据区生成一个只读(不可改变)变量。

回答2:

用的时候很少有区别
但其实还是有区别的,比如const int N = 3
这里加了类型int,而define N 3不加类型,从这个地方就能看出来define只是做文本替换(将N换成3),而const 定义常量的话会检查数据类型

回答3:

#define N 3是宏定义,在编译之前,编译器会把它在引用的地方进行原文替换,如果代码中多次引用了这个宏定义,编译器就在每个地方用宏定义的内容原文替换。
const int N =3 的作用是变量时固定不变的,不能被修改,多次引用的时候,编译器到内存中N的位置去读取,而没有在每个位置都拷贝一个

回答4:

没区别。都是定义常量。