C语言常量可以这么理解:时常存在的量,就是只要定义了就不会被改变(程序执行期间不会改变)的量叫做常量(你可以理解为固定值),又叫做字面量,常量就只需要这么理解。
常量可以这么理解:时常存在的量,就是只要定义了就不会被改变(程序执行期间不会改变)的量叫做常量(你可以理解为固定值),又叫做字面量,常量就只需要这么理解。
那么常量是什么数据类型呢?
其实常量可以是任何的基本数据类型,例如整数常量、浮点数常量、字符相关的常量,也有枚举类型的常量以及字符串字面值常量。
如果你定义了一个常量,程序执行过程中你想改变它,是万万不可的,因为它是常量。
整数常量可以带一个后缀,后缀是U和L的组合,U表示无符号整数(unsigned),L表示长整数(long);后缀可以大写,也可以小写,其U和L无先后顺序,且每个只能出现一次。
一个整数常量,C语言中可以使用十进制、八进制或者十六进制来表示。
C语言中没有二进制输入,你可用函数去实现。
如何表示十六进制(使用0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F来表示,16个大小不同的数,即逢16进1)?
前缀指定:0x或0X表示十六进制。
比如:0x52、0X2A等。
如何表示八进制(使用0、1、2、3、4、5、6、7来表示,即逢8进1)?
前缀指定:0表示是八进制。
比如:052、026等。
如何表示十进制(使用0、1、2、3、4、5、6、7、8、9来表示,即逢10进1)?
不带前缀则默认表示十进制。
比如:120、100、360
常量举例说明
521 // 十进制
0520 // 八进制
0x2e // 十六进制
50 // 十进制整数
120u // 无符号整数
120l // 长整数
63lu // 无符号长整数
浮点常量
C语言中浮点常量是由整数部分、小数点、小数部分和指数部分组成。
你可以使用小数形式或者指数的形式来表示浮点常量。
如果你使用小鼠形式表示浮点常量,那么这个浮点常量需包含整数部分、小数部分、要么两者同时包含。
如果你使用指数来表示浮点常量,那么这个浮点常量需要包含小数点、指数、或者同时包含两者。
带符号的浮点常量,是用e或者E引入的。
120.12
12.258E1 // = 122.58
1286e-2 // = 12.86
-5.5e-3 // = -0.0055
43E-4 // = 0.0043
字符常量
字符常量在一对单引号内,如:'a',可以存储在char类型的变量中。
字符常量用于表示执行字符集内的字符。
字符常量可以是一个普通的字符,如:'b'、一个转义序列c如:'t',或一个通用的字符,如:'u02C0'。
在C语言中,有一些特定的字符,如果它们前面有反斜杠,它们就会具有特殊的含义,被用来表示如换行符(n)或制表符(t)等。
转义序列码举例
转义序列 | 含义 |
---|---|
\ | 字符 |
' | ' 字符 |
" | " 字符 |
? | ? 字符 |
a | 警报铃声 |
b | 退格键 |
f | 换页符 |
n | 换行符 |
r | 回车 |
t | 水平制表符 |
v | 垂直制表符 |
ooo | 一到三位的八进制数 |
xhh . . . | 一个或多个数字的十六进制数 |
转义序列码输出案例
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("我爱您,");
printf("我的祖国!\n");
printf("C语言教程\n");
printf("C语言\t学习\n");
printf("C语言从何学起?\n");
return 0;
}
打印输出
我爱您,我的祖国!
C语言教程
C语言 学习
C语言从何学起?
Process returned 0 (0x0) execution time : 0.479 s
Press any key to continue.
字符串文本
字符串文本在一对双引号内(如:"Hello")的字符序列。
字符串表示一起构成以null
结尾的字符串的字符序列。
必须在宽字符串文本前添加字母L作为前缀。
字符串文本有char
类型数组(即char[]
)。
宽字符字符串有wchar_t
类型数组,即wchar_t[ ]
。
字符串是包含类型为char
的元素的数组。
数组中的元素数等于字符串中的字符数加上结尾的null
字符。
字符串的字符将按顺序存储在连续内存位置。
字符串文本中的转义序列(例如,\ 或 " )将作为单个字符进行计数。
null
字符(由 0 转义序列表示)自动追加到每个字符串并标记该字符串的末尾。
这会在转换阶段 7 出现。
请注意:编译器无法在两个不同的地址存储两个相同的字符串。
/GF
强制编译器将相同字符串的单个副本置于可执行文件中。
转载注明:
感谢博主,喝杯咖啡~
感谢博主,喝杯咖啡~
还没有人发表评论