常量相关

字符常量
字符常量是括在单引号中。如果常量以 L(仅当大写时)开头,则表示它是一个宽字符常量(例如 L‘x‘),此时它必须存储在 wchar_t 类型的变量中。否则,它就是一个窄字符常量(例如 ‘x‘),此时它可以存储在 char 类型的简单变量中。

字符常量可以是一个普通的字符(例如 ‘x‘)、一个转义序列(例如 ‘\t‘),或一个通用的字符(例如 ‘\u02C0‘)。

在 C++ 中,有一些特定的字符,当它们前面有反斜杠时,它们就具有特殊的含义,被用来表示如换行符(\n)或制表符(\t)等。下表列出了一些这样的转义序列码:

转义序列    含义
\\    \ 字符
\‘    ‘ 字符
\"    " 字符
\?    ? 字符
\a    警报铃声
\b    退格键
\f    换页符
\n    换行符
\r    回车
\t    水平制表符
\v    垂直制表符
\ooo    一到三位的八进制数
\xhh . . .    一个或多个数字的十六进制数
下面的实例显示了一些转义序列字符:

#include <iostream>
using namespace std;

int main()
{
   cout << "Hello\tWorld\n\n";
   return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:

Hello   World
字符串常量
字符串字面值或常量是括在双引号 "" 中的。一个字符串包含类似于字符常量的字符:普通的字符、转义序列和通用的字符。

您可以使用空格做分隔符,把一个很长的字符串常量进行分行。

下面的实例显示了一些字符串常量。下面这三种形式所显示的字符串是相同的。

"hello, dear"

"hello, \

dear"

"hello, " "d" "ear"
定义常量
在 C++ 中,有两种简单的定义常量的方式:

使用 #define 预处理器。
使用 const 关键字。
#define 预处理器
下面是使用 #define 预处理器定义常量的形式:

#define identifier value
具体请看下面的实例:

#include <iostream>
using namespace std;

#define LENGTH 10
#define WIDTH  5
#define NEWLINE ‘\n‘

int main()
{

   int area;  

   area = LENGTH * WIDTH;
   cout << area;
   cout << NEWLINE;
   return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:

50
const 关键字
您可以使用 const 前缀声明指定类型的常量,如下所示:

const type variable = value;
具体请看下面的实例:

#include <iostream>
using namespace std;

int main()
{
   const int  LENGTH = 10;
   const int  WIDTH  = 5;
   const char NEWLINE = ‘\n‘;
   int area;  

   area = LENGTH * WIDTH;
   cout << area;
   cout << NEWLINE;
   return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:

50
请注意,把常量定义为大写字母形式,是一个很好的编程实践。
时间: 2024-08-03 09:52:02

常量相关的相关文章

【代码优化】使用enum代替int常量

经常带代码中看见这样的代码: public static final int APP_START=1; public static final int APP_PAUSE=0; public static final int APP_STOP =2; public static final int PLAY_START=1; public static final int PLAY_PAUSE=0; public static final int PLAY_STOP =2; 这种方法叫作int枚

cxf 相关知识整理

① 请求方式为GET @GET @Path(value = "/userAddressManage") @Produces( { MediaType.APPLICATION_JSON, "text/html; charset=UTF-8" }) public BuyerAddressResponseModel userAddressManage( @QueryParam("buyerTel") String buyerTel, @QueryPar

4.3-全栈Java笔记:面向对象的内存分析

面向对象的内存分析 为了让大家对于面向对象编程有更深入的了解,我们要对程序的执行过程中,内存到底发生了什么变化,进行剖析,让大家做到"心中有数",通过更加形象的方式理解程序的执行方式. 老鸟建议:       本节是为了让初学者更深入了解程序底层执行情况,为了完整的体现内存分析流程,会有些新的名词,比如:线程.Class对象.大家暂时可以不求甚解的了解,后期学了这两个概念再回头来看我们这篇内存分析,肯定收获会更大. Java虚拟机的内存可以分为三个区域:栈stack.堆heap.方法区

C++完成Oracle存储过程批量插入(一)

为了满足大数据量的批量插入这个需求,最近研究了一下Oracle数据库的批量插入这块儿,本篇先介绍一下这两天来所了解到的以及一次不成功的C++进行存储过程批量插入方案. 一.Oracle处理批量插入存储过程 1.Oracle处理批量插入涉及到的相关概念有:Type.bulk collect.Oracle数组等.现在对它们依次简单的介绍一下. 1)Type Type主要用于用户建立Oracle自定义类型. Type常用的自定义类型介绍: A.子类型 类似与全局定义的常量,只要改一处地方,与此常量相关

Web Service 那点事儿(4)—— 使用 CXF 开发 REST 服务

现在您已经学会了如何使用 CXF 开发基于 SOAP 的 Web 服务,也领略了 Spring + CXF 这个强大的组合,如果您错过了这精彩的一幕,请回头看看这篇吧: Web Service 那点事儿(2) —— 使用 CXF 开发 SOAP 服务 今天我们将视角集中在 REST 上,它是继 SOAP 以后,另一种广泛使用的 Web 服务.与 SOAP 不同,REST 并没有 WSDL 的概念,也没有叫做“信封”的东西,因为 REST 主张用一种简单粗暴的方式来表达数据,传递的数据格式可以是

Lua4.0 编译器其它

编译器到现在为止,基本上大面上的东西都涉及到了. 看一下上节还剩下的问题. ---------------------------------------- 到目前为止的问题: > 函数原型优化 luaU_optchunk > 打印函数原型 luaU_printchunk > dump 函数原型 luaU_dumpchunk ---------------------------------------- 如上所示,还剩这几个坑没有填上. 这节就把它们交待一下,收个尾. 可以看到,这三个

Java之路(二) 操作符

操作符比较简单,这里只点一下注意事项和要点,请牢记. 操作符接受一个或多个参数,并生成一个新值. Java中,几乎所有的操作符都只能操作基本类型. 例外是 = == 和 !=,它们可以操作所有的对象.此外,String类支持+和+=. 1.赋值 = 基本类型存储了实际的数值,所以为基本类型变量赋值是将一个地方的内容赋值到变量所表示的地址. 为对象赋值时,实际操作的是引用.我们如下图所示,假设T1和T2是同一个类的两个对象的引用,分别指向各自的对象.开始如A所示,当执行赋值T1=T2后,如B所示,

Delphi知识点与技术概述【第二章 运行时库(RTL)】

内容提要: *RTL概述 运行时库简称RTL,是一个非常庞大的函数集合. RTL的单元 SysUtils与SySConst单元 Sysconst单元定义了一些由其他RTL单元显示消息的常量字符串,这些字符串用resourcestring关键字来声明,并保存在程序资源中.它一些特性我们经常使用,如:IntToStr或Format,windows版本信息等. 时间日期操作,不会引起异常. TryStrToDate 将字符串转换为日期 TryEncodeDate 对日期进行编码 TryEncodeTi

Android开发人员不得不收集的代码(转)

App相关→AppUtils.java 安装App installApp 卸载指定包名的App uninstallApp 获取当前App信息 getAppInfo 获取所有已安装App信息 getAllAppsInfo 根据包名判断App是否安装 isInstallApp 打开指定包名的App openAppByPackageName 打开指定包名的App应用信息界面 openAppInfo 可用来做App信息分享 shareAppInfo 判断当前App处于前台还是后台 isAppBackgr