C语言中的常量和字面值

数据类型字面值 的关系:

如果有语句

int a = 1234;
那么int就是数据类型,a是变量,1234是字面值。int的字面值也就是可以用来初始化int类型变量的东西(不要说用其他变量也可以初始化哦!)。同样,char的字面值当然是机器的ASCII字符集了,分为可见的和不可见的字符,表示方法有两种,见下面程序。 常量(constant)可以理解为所谓的字面值, 常量用const修饰的变量并不是一个概念。


#include <stdio.h>

int main(void)
{
/* 整形常量(字面值) */

	// 十进制表示
	int in = 1234;
	long ln = 1234L;
	
	unsigned int uin = 1234u;
	unsigned long uln = 1234UL;


	// 十六进制表示
	in = 0xabul;

	// 八进制表示
	in = 0123ul;

	// 没有后缀表示某整形常量为short

/* 字符常量(字面值) */

	// 普通表示
	char c = 'x';

	// 用转义序列表示
	c = '\n';
	c = '\100'; // 1-3位八进制数
	c = '\x4a'; // 1-2位十六进制数

	/*
	 * 所有转义序列
	 * -----------------
	 * \a(对应ASCII表中值为7的字符(响铃))
	 * \b(值为8(退格))
	 * \f		\'
	 * \n		\"
	 * \r		\\
	 * \t		\?
	 * \v		\ooo	\xhh
	 * -----------------
	 * 特别的,转义序列'\ooo'对应ASCII表中值为0ooo(八进制)的字符,
	 * '\xhh'对应表中值为0xhh(十六进制)的字符。
	 */


/* 浮点型常量(字面值) */

	float f = -12.34e-1f;		// float
	double df = 1234.56;		// double
	long double ldf = 1234.56L; // long double

/* 字符串常量(字面值) */
	
	
/* 枚举常量 */
	enum Month_t
	{
		JAN = 1, FEB, MAR, APR, MAY, JUN,
		JUL, AUG, SEP, OCT, NOV, DEC
	};
	
	enum Month_t m = MAR; // c编译器不检查,c++编译器会检查

	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值