当前位置:首页 » 编程语言 » c语言的常量和宏变量区别
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言的常量和宏变量区别

发布时间: 2022-11-29 23:45:48

‘壹’ 如何理解C语言常量和变量

  对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。在程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量。它们可与数据类型结合起来分类。例如,可分为整型常量、整型变量、浮点常量、字符常量、字符变量、枚举变量、枚举变量。在程序中,直接常量是可以不经说明而直接引用的,而符号常量和变量则必须先定义后使用。

  1、C语言常量和符号常量

    在程序执行过程中,其值不发生改变的量称为常量。

    1.1直接常量(字面常量):

    整型常量:12、0、-3;

    实型常量:4.6、-1.23;

    字型常量:‘a’、‘b'。

    1.2符号常量

    标识符:用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列。

    符号常量:用标识符代表一个常量。在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。

    符号常量在使用之前必须先定义,其一般形式为:#define 标识符  常量其中#define也是一条预处理命令(预处理命令都以"#"开头),称为宏定义命令(在后面预处理程序中将进一步介绍),其功能是把该标识符定义为其后的常量值。一经定义,以后在程序中所有出现该标识符的地方均代之以该常量值。

    习惯上符号常量的标识符用大写字母,变量标识符用小学字母,以示区别。

    例3.1  符号常量的使用。

    #define PRICE 30main() {

        int num,total;

        num=10;

        total=num*PRICE;

        printf('total=%d",total);

    }

    用标识符代表一个变量,称为符号常量。

    符号常量与变量不同,它的值在其作用域内不能改变,也不能再被赋值。

    使用符号常量的好处是:含义清楚;能做到“一改全改”。

  2、C语言变量

      其值可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储单元。变量定义必须放在变量使用之前。一般放在函数体的开头部分。要区分变量名和变量值是两个不同的概念。

‘贰’ C语言中常量与变量到底有什么区别

变量和常量都是内存中的一块区域,我们先不管区域有多大,只需要知道对于常量这块区域,我们在得到这块区域的使用权时就给它存入了一些数据,这些数据在程序运行期间是不能被改变的,如果强行给它别的数据就会程序出错。对于变量这块区域,我们可以根据自己的需要,随时可以将不同的数据放进去,这是合法的操作,当然这些不同的数据,类型得是一样的。

‘叁’ const常量和宏变量的区别

define宏定义和const常变量区别:
1.define是宏定义,程序在预处理阶段将用define定义的内容进行了替换。因此程序运行时,常量表中并没有用define定义的常量,系统不为它分配内存。const定义的常量,在程序运行时在常量表中,系统为它分配内存。
2.define定义的常量,预处理时只是直接进行了替换。所以编译时不能进行数据类型检验。const定义的常量,在编译时进行严格的类型检验,可以避免出错。
3.define定义表达式时要注意“边缘效应”,例如如下定义:
#define N 2+3 //我们预想的N值是5,我们这样使用N,int a = N/2; //我们预想的a的值是2,可实际上a的值是3。原因在于在预处理阶段,编译器将 a = N/2处理成了 a = 2+3/2;这就是宏定义的字符串替换的“边缘效应”因此要如下定义:#define N (2+3)。const定义的表达式则没有上述问题。const定义的常量叫做常变量原因有二:const定义常量像变量一样检查类型;const可以在任何地方定义常量,编译器对它的处理过程与变量相似,只是分配内存的地方不同。

‘肆’ C语言中#define宏定义和变量定义的联系和区别

#define宏定义的量是做常量处理的,如#define
price
30,下文只要遇到price就代表常量30,他与变量的区别之一是在书出语句中printf(“%d”,a)(a为变量),这是合法的;但如果出现printf(“%d”,price)这就是不合法的。另外宏语句在整个程序中有效,而变量只在某个函数内有效。

‘伍’ C语言中,变量跟常量的区别,举一些例子 好理解,谢谢!!!

常量一般是指通过宏定义、const修饰而得到的,另外,像1,10,1.25f,1.36d这样的数值也是常量。PS:后面的f,d表示该数值是float,double类型的,欲知更多有关这方面的只是,请参考《C primer plus》。
e.g. #define MAX 32767 //这样就通过宏定义了一个MAX常量
const int MAX 32767; //通过const关键字修饰符定义了一个整形常量MAX
const float PAI 3.1415926; //通过const关键字修饰符定义了一个浮点型常量PAI
char *const ptr = 0x12345678; //通过const关键字修饰符定义了一个指针常量

除了以上情况,在C语言中见到的除函数名,关键字等以外的合法标识符,均为变量标识符。

区别:常量是定义时可以对其设置值(数值常量除外),而在其后的任何时刻都不可以改变其值的量。
变量是可以在定义后的任何时刻改变其值的量。

希望以上的回答对你有帮助,祝好!

‘陆’ 【C语言】变量/常量/宏定义

变量和常量是程序处理的两种基本数据对象

变量的意义就是确定目标并提供存放的空间。

1.变量名只能是英文字母(A-Z,a-z)和数字(0-9)或者下划线 _ 组成。
2.第一个字母必须是字母或者下划线开头。
3.变量名区分大小写。
4.不能使用关键字来命名。
-关键字列表

1.char
-字符型,占用一个字节。
2.int
-整型,通常反映了所用机器语言中整数的最自然长度。
3.float
-单精度浮点型。
4.double
-双精度浮点型。

数据类型 变量名
-int a
-char b
-float c
-double d

1.整型常量:520、1314、123
2.实型常量:3.14、5.12、8.97
3.字符常量:
-普通字符:'L','O','v','e'
-转义字符:'\n','\t','\b'
4.字符串常量:"demo"
字符:'A','b'
字符串:'Hello world' 编译器在编译的时候会给他加上一个转义字符 '\0' 空字符表示字符串的结束,故这个字符串有12个字符。
5.符号常量:使用前必须先定义
-定义符号常量 (宏定义)
格式:#define 标识符 常量
例如:

标识符(identifier)【有意思的是标识符念作biao fu】
1.标识符只能是英文字母(A-Z,a-z)和数字(0-9)或者下划线(_)组成。
2.必须以字母或下划线开头。
3.标识符区分大小写。
4.不能使用关键字来命名标识符。

‘柒’ C语言中的常量和宏定义是同一个意思吗

C语言中的常量是在定义时用const来指示的,是由编译器处理的,而宏定义是由预处理器处理的,编译器根本看不到,严格来说宏定义不应该是C语言的组成部分。

‘捌’ C语言怎么区分常量和变量

常量,有两种方法定义。一种是用宏 #define a 3 那么编译之前a就都会被3替换掉
第二种是在定义变量前面加const 。如const int a=3; 这是一个不可改变值的变量。
所以。。。就可以知道哪些是常量了。看定义。。
不知道是不是常量可以在那个单词上点右键然后选转到定义就可以看到了
另外,常量通常所有字母大写

‘玖’ C语言中怎么区分常量与变量

  • 一般普通变量:如123,3.5,"abc", 'a' 很容易识别

  • 以变量形式展现的,要看标识符的定义形式,才能确定该标识符是常量,还是变量,如:

    const int a=5 ; //常量 有const修饰,变量不能修改

    int b=34; //变量

  • #define 定义的宏,即不是常量也不是变量

‘拾’ C语言中常量定义和宏定义有什么区别

区别大了个去了.

宏定义是预处理命令.

#defien A 3
执行后, 预处理器把会正文所有全字匹配的A, 全部替换为3,

那么, 最后的代码进入编译器的代码,

1 + A, 是变成1 + 3的.

而const int a = 3;
这个是不在预处理器的管理范围之内 ,这个就是编译器的工作了, 有些编译器不会为它分配空间, 直接把它加入符号表中, 也就是说, 常量不再是0123456789这10个数, 而是0123456789a这11个数, 那么a就是被定义成3了, 所以符号表里的内容是01234567893.

而有些 编译器会为它分配空间.

你不知道它们的区别, 说明你学宏的时候, 并不知道宏的原理.