如何理解C语言常量和变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何理解C语言常量和变量相关的知识,希望对你有一定的参考价值。

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

  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语言 变量 被赋值后如何转化成 常量???

你是不是想做这样的事情:
int n=5;
int arr[n];

这是不可能的,初学者包括我当年也想这样干,但C语言不允许。
类似这样的问题,解决的方法,一是估计你可能需要的最大空间,比喻说,你估计可能需要最多1000个数组,那就以下子分配这么多的空间:
#define MaxVal 1000
int arr[MaxVal];
然后再配个一个变量纪录实际需要的个数。
另一种代替方法是动态分配,用malloc函数,关于这个自己查查资料吧
参考技术A c中没有常量变量,变量也不可能转化成常量。

变量被赋值以后,变量的内存空间所存储的内容发生改变。
当调用变量的时候,所使用的变量的值接成了被赋予的值了。
参考技术B 如果你想定义常量那么需要在外面定义一个静态的用#define定义。而变量只需要随你的类型定义就好。例如int啦 float啦只类的。
至于变量怎么转化成常量貌似还真不太明白。
参考技术C :……用const int x;就是变成了一个常量

以上是关于如何理解C语言常量和变量的主要内容,如果未能解决你的问题,请参考以下文章

c语言中const修饰的到底是常量还是变量?

在C语言中用const定义的变量如何修改

C语言 变量 被赋值后如何转化成 常量???

c语言,常量与变量

C语言源代码中怎样区分变量和常量

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