📄 literalconstant.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<link rel="stylesheet" href="css/stdlayout.css" type="text/css">
<link rel="stylesheet" href="css/print.css" type="text/css">
<meta content="text/html; charset=gb2312" http-equiv="content-type">
<title>字面常量</title>
</head>
<body>
<h3><a href="http://caterpillar.onlyfun.net/GossipCN/index.html">From
Gossip@caterpillar</a></h3>
<h1><a href="CppGossip.html">C++ Gossip: 字面常量</a></h1>
<br>
您可以在程式中写下1、1.0、3.14159这样的数值,这类数值称之为“字面常量”(Literal
contstant),预设程式中若写下一个整数值,例如1这个数值的话,预设它会是个int型态无正负号的数值,而如果您在程式中写下1.0,3.14
等小数时,预设它会是double型态的数值,例如下面这个程式所显示出来的大小分别是int与double的大小:<br>
<br>
<pre>#include <iostream> <br>using namespace std; <br><br>int main() { <br> cout << "sizeof(1): " << sizeof(1) << "\n";<br> cout << "sizeof(1.0): " << sizeof(1.0) << "\n";<br><br> return 0; <br>}</pre>
<br>
执行结果:<br>
<table style="text-align: left; width: 100%;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="background-color: rgb(0, 0, 0);"><small><span style="color: rgb(255, 255, 255);">sizeof(1): 4<br>
sizeof(1.0): 8</span></small><span style="color: rgb(255, 255, 255);"><br>
</span></td>
</tr>
</tbody>
</table>
<br>
整数字面常量可以用8进位、10进位与16进位来表示,一般习惯使用10进位,如果您要使用8进位的字面常量,开头加上0就可以了,如果要使用16进位的
字面常量,开头加上0x,例如下面的程式各显示10进位制26的8进位与16进位写法:<br>
<br>
<pre>#include <iostream> <br>using namespace std; <br><br>int main() { <br> cout << 26 << "\n"; // 10进位<br> cout << 032 << "\n"; // 8进位<br> cout << 0x1A << "\n"; // 16进位<br><br> return 0; <br>}</pre>
<br>
由于cout输出整数值时,都会以10进位制显示,所以上面的程式中三行陈述都会显示26。<br>
<br>
您可以在整数值之后加上L或l,表示该整数值要是long型态,因为l容易与数字1搞混,所以通常使用L,例如1L,您也可以指定为无号整数,可使用U或
u来指定,例如1U,L与U可以同时指定,例如1UL或1LU;对于浮点数的话,则可以在写下浮点数值时以F或f表示数值要使用float型态,例如
3.14f,也可以使用科学记号,例如20000可以表示为2e4。<br>
<br>
字元字面常量则以单引号来包括一个字元,例如'A'、'1'都表示一个字元字面常量,而有一些字元与C++中所使用的相同,例如"、'、\等,要在程式中
表现这些字元则要使用escape sequence,即\"、\'、\\,其它还有一些“不可见字元”,也要以escape
sequence来表示,下表列出常用的escape sequence:<br>
<br>
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td style="background-color: rgb(204, 204, 204);"><span style="font-weight: bold;">escape sequence</span></td>
<td style="background-color: rgb(204, 204, 204);"><span style="font-weight: bold;">说明</span></td>
</tr>
<tr>
<td>\n</td>
<td>换行、新行(newline)</td>
</tr>
<tr>
<td>\t</td>
<td>水平定位点(horizontal tab)</td>
</tr>
<tr>
<td>\v</td>
<td>垂直定位点(vertical tab)</td>
</tr>
<tr>
<td>\b</td>
<td>退回一格(backspace)</td>
</tr>
<tr>
<td>\r</td>
<td>返回(carriage return)</td>
</tr>
<tr>
<td>\f</td>
<td>换页(formfeed)</td>
</tr>
<tr>
<td>\a</td>
<td>哔声(alert bell)</td>
</tr>
<tr>
<td>\\</td>
<td>倒斜线(backslash)</td>
</tr>
<tr>
<td>\?</td>
<td>问号</td>
</tr>
<tr>
<td>\'</td>
<td>单引号</td>
</tr>
<tr>
<td>\"</td>
<td>双引号</td>
</tr>
</tbody>
</table>
<br>
您还可以使用escape
sequence自行指定8进位字元编码,指定的格式为\ooo,例如'\12'就是新行字元(ASCII中编码12),'\062'则是字元'2'。<br>
<br>
您可以使用endl这个C++内建的I/O控制器(manipulator),它会输出newline字元,而避免直接使用escape
sequence指定newline字元,例如:<br>
<div style="margin-left: 40px;"><span style="font-weight: bold; font-family: Courier New,Courier,monospace;">cout << "Hello!
World!" << endl;</span><br>
</div>
<br>
在C++中如果以""来包括一串文字的话,即为字串字面常数,例如"Hello!
World!"就是字串字面常数,字串字面常数由字元阵列组成,每一个字串最后会以一个null字元结束。<br>
<br>
true与false也是字面常数,对应型态为bool。<br>
<br>
<br>
<br>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -