用#define 定义的常量与变量有啥区别,啥时候应该使用define定义符号常量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用#define 定义的常量与变量有啥区别,啥时候应该使用define定义符号常量相关的知识,希望对你有一定的参考价值。

一个是常量,一个是变量
这就是最大的,最本质的区别

举例:
int PI=3.14;
我们可以对其进行运算
PI++;

然而
#define PI 3.14
PI++;是不可以的!!

一般来说,对于程序运行过程中的常量可以用#define,比如圆周率、自然对数底,还有所考虑问题是的一些常量,比如你编了一个计算一个人的各门功课平均成绩的程序,你可以事先设定他的功课不会超过100门(举例哈),那么,你就可以#define MAX_G_K_NUM 100,万一有一天有人告诉你他有101门功课,那也没有关系,你可以把MAX_G_K_NUM改一下就OK了

祝你好运!学习编程愉快!
参考技术A #define 是定义符号常量,以可以是宏定义.其值在运行过程中是不可以改变的,而变量在运编译过程中是可以变的.

shell变量与C语言变量之间在用法上有啥区别

参考技术A C语言变量有确定的类型,一般需要初始化,否则值是不确定的。未经特别声明,默认作用域是局部的(局部变量)。
shell变量类型不固定,赋值为什么类型的数值,它就是什么类型的。可以不初始化,后面用的时候直接赋值,问题不大。shell变量在脚本中默认都是全局变量。
参考技术B 《UNIX 超级工具》一书 第八章
8.05 命令行的评价(evaluation)
下面是C shell 解释命令行的顺序:
1. 历史替换
2. 分裂词(包括特殊字符)
3. 更新历史表
4. 解释单引号(') 和 双引号(")
5. 别名替换
6. 输入和输出的重定向(如 > < 和 |)
7. 变量替换
8. 命令替换
9. 文件名扩展
(Bourne shell 的解释顺序本质上是一样的,除了它不执行历史替换和别名替换之外)

以上是关于用#define 定义的常量与变量有啥区别,啥时候应该使用define定义符号常量的主要内容,如果未能解决你的问题,请参考以下文章

C语言里符号常量和常变量有啥区别?

字符常量和字符变量有啥区别?

常量和常变量有啥区别没

Java的Calendar类中的常量DAY_OF_WEEK和DAY_OF_WEEK_IN_MONTH有啥区别?

Java中 final和static修饰的变量有啥区别?

请问C++语言里静态变量和全局变量有啥区别?谢谢