C语言中是如何定义常量的啊?

如题所述

C语言定义常量常用的方法有以下2种:
第一种:宏定义
#define N 3 // 定义了一个常量为3的宏N,在程序中N就代表3
第二种:给变量初始化赋值
int a = 2; // 定义了一个int型变量,并赋值为2,其实这是用变量来定义常量
注:定义常量还是用宏定义的比较多。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-04-19
C语言的常量有整数常量,实型常量,字符常量,符号常量等。
1、整数常量

  整数常量是指直接实用的整形常数,又称整形常数或者整数,例如,1,-9等。整数常量可以是长整形、短整型、符号整型和无符号整型。

  a)八进制数

   八进制整数必须以0开头,即以0作为八进制数的前缀。数字取值范围为0—7.八进制数常是无符号数

  b)十进制数

   十进制数是不需要在其面前加前缀的。十进制数中包含的数字0—9组成。

  c)十六进制数

   常量前面使用0x作为前缀,表示该常量是用十六进制表示。十六进制中所包含的数字由0—9以及字母A—F组成(十六进制数中的字母可以使用A—F大写形式,也可以使用a—f小写形式。)

  整数数据都以二进制的形式存储在计算机中,其数值以补码的形式表示。一个正数的补码与其原码形式相同,一个负数的补码是将该数绝对值的二进制形式按位取反再加1.

2、 实型常量

  实型称浮点型,由整数和小数部分组成,其中用十进制的小数点隔开。表示实数的方式由科学计数和指数方式两种。

  a)科学计数方式

   科学计数方式就是使用十进制的小数方法进行描述实型

  b)指数方式

   若实数非常大或非常小,使用科学计数方式则不利于观察,此时可以使用指数方法显示实型变量。使用字母e或者E进行指数显示,如45e2表示4500,而45e-2表示的是0.45

  在编写实型常量时,可以在常量的后面加上那个符号F或者L进行修饰。

  F表示该常量是float单精度类型,L则表示该常量是为long double长双精度类型。

  如果不在后面加上后缀,那么默认的状态下,实行常量为double双精度类型。

3、 字符型变量

  字符型常量可以分为字符常量和字符串常量

  a)字符常量

   字符常量分为一般字符常量和特殊字符常量。

   使用单撇号括起一个字符的形式即字符常量。使用字符常量需要注意以下几点:

   字符常量只能用单撇号括起来, 不能使用单引号或其他括号。

   字符常量中只能包括一个字符,不能是字符串。

   字符常量是区分大小写的。

   单撇号代表定界符,不属于字符常量中旳一部分。

   单撇号里面可以是数字、字母等C语言字符集中除’和\以外所有可现实的单个字符,但是数字被定义为字符之后则不能参与数值运算。

   特殊字符常量就是转义字符。转移字符是C语言中表示字符的一种特殊形式,其含义是将反斜杠后面的字符转换成另外的意义。本回答被网友采纳
第2个回答  2015-12-21
  在C#中定义常量的方式有两种,一种叫做静态常量(Compile-time constant),另一种叫做动态常量(Runtime constant)。前者用“const”来定义,后者用“readonly”来定义。
  对于静态常量(Compile-time constant),它的书写方式如下:
public const int MAX_VALUE = 10;
为什么称它为静态常量呢,因为如上声明可以按照如下理解(注意:如下书写是错误的,会出编译错误,这里只是为了方便说明)。
public static const int MAX_VALUE = 10;
  用const定义的常量,对于所有类对象而言都是一样的,因此需要像访问静态成员那样去访问const定义的常量,而用对象的成员方式去访问会出编译错误。此外,对于静态常量的访问在编译的时候,是用常量的值去替换常量,例如:
int nValue = MAX_VALUE;
这句在编译之后,和如下这句所产生的中间语言代码是一样的。
int nValue = 10;
  不过,在用const来定义常量的时候,在类型上有很多限制。首先,此类型必须属于值类型或者String类型,同时此类型的初始化不能通过new来完成,因此一些用struct定义的值类型常量也不能用const来定义。
  相对于const而言,用readonly来定义常量要灵活的多,它的书写方式如下:
public readonly int MAX_VALUE = 10;
为什么称为动态变量,因为系统要为readonly所定义的常量分配空间,即和类的其他成员一样拥有独立的空间。此外,readonly所定义的常量除了在定义的时候可以设定常量值外,还可以在类的构造函数中进行设定。由于readonly所定义的常量相当于类的成员,因此使用const来定义常量所受到的类型限制,在使用readonly去定义的时候全部消失,即可以用readonly去定义任何类型的常量。
相似回答