C语言中3+5是不是合法的常量
有关C语言的
有关C语言的
答案:不是,下面有关于常量的定义你可以看:
常 量常量是指那些在程序执行过程中不可改变的量,C语言的常量包括直接常量和符号常量两种。
一、直接常量
直接常量在程序中可直接使用,具体可分为以下几种基本类型。
1、整型常量:是一种整型数。通常有八进制、十进制、十六进制三种表达形式。在C语言中规定八进制数书写时必须以 0 开头,十六进制数以 0x 或 0X 开头。如十进制常量 10,在八进制中写成 012,在十六进制中写成 0XA 或 0xa。为了避免与八进制混淆,十进制整数常量的前面不能出现无效的 0,如 10 不能写成 010。
2、长整型常量:在一个 long 类型设计取值范围内的整数均可看成长整型常量。书写时在常量后面加上一个英文字符 l 或 L。如:-28l 或 -28L (十进制长整型常量)、056l 或 056L (八进制长整数常量)、0x33dl 或 0X33DL (十六进制长整型常量)。
3、浮点常量:是一实数,只有十进制一种表达方式。其书写形式有以下两种:
⑴ 十进制小数的表示法。如:-1.25,0.452。
⑵ 指数表示法。这种表示法通常用在计算中遇到的很大或小的数。如 60000 可以表示成 6E4,0.000035 可以写成 3.5E-5,等等。E 也可以写成小写 e。
4、字符常量:是一种用字符来表示该字符在机器字符集中编码值的数字常量,如 IBMPC 系列微机用的 ASCII 码值。其书写形式是把该常量用单引号括起来,如 ''''''''A'''''''',由于字符 A 的 ASCII 码是65,所以取字符常量 ''''''''A'''''''',取到的实际上是数值65。
另外,也可以把上一章里表1.1中介绍的转义字符放在单引号中作为字符常量。如用 ''''''''\n'''''''' 表示换行符的 ASCII 码10。在转义字符系列中,反斜线“\”改变了后随字符 n的本来意义。
5、字符串常量:是一种由零个或多个字符组成的常量。书写时用双引号把这些字符括起来。如:"A"、"WORLD"。组成字符串的字符可以包括表1.1所列的转义字符序列。如:
"CHINA\nHEFEI\n"
把这个字符串作为库函数 printf 的参数运行后,就会在屏幕上打印出以下结果:
CHINA
HEFEI
字符串常量在编译时,编译系统自动在其后加一个空字符 ''''''''\0'''''''' 作为字符串的终止符,因此,系统对有 N 个字符组成的字符串常量总是分配 N+1 个字节的存储空间。必须注意:''''''''A'''''''' 与 "A" 是不同的。前者是一个字符常量,在内存中只占一个字节的空间;而后者是一个字符串常量,它由字符 ''''''''A'''''''' 和 ''''''''\0'''''''' 组成,它在内存中占两个字节的空间。而一个空字符串常量 "" 实际上包含了一个空字符 ''''''''\0'''''''',在内存中占用一个字符的存储空间。
二、符号常量
符号常量用被定义了的标识符来代替常数。对于在程序设计中数位较长、反复出现或者需要经常修改的一些常量,使用符号常量有其独到的好处。在程序调试或移植过程中,需要改变这些常量的值时,只要修改源程序开始部分符号常量宏替换的值就可以了。如程序里经常要用到圆周率 3.14159 就可以通过宏替换命令用符号常量来代替它:
define PI 3.14159 /* 通过宏替换命令用符号常量 PI 代替常数 3.14159 */
这样,在程序中凡是用到园周率的地方都可以用 PI 代替了。为了醒目起见,习惯上总是用大写字母来组成符号常量的标识符。
希望我的回答让你满意~!
谢谢~!好像是合法的当然是合法的了。编译器自动会转换为8的。好像不是 这个应该属于算数表达式 不属于常量不是,常量不涉及计算
上一个:C语言排序有哪些方法 详细点
下一个:谁有学习C语言的好网站?