C++常量(C++数值常量、字符串常量、符号常量)
http://see.xidian.edu.cn/cpp/biancheng/view/104.html
字符串常量
用双撇号括起来的部分就是字符串常量,如"abc","Hello!","a+b","Li ping"都是字符串常量。字符串常量"abc"在内存中占4个字节(而不是3个字节),见图2.5。

图
2.5
编译系统会在字符串最后自动加一个'\0'作为字符串结束标志。但'\0'并不是字符串的一部分,它只作为字符串的结束标志。如
cout<<"abc"<<endl;
输出3个字符abc,而不包括'\0'。
注意: "a"和'a'代表不同的含义,"a"是字符串常量,'a'
是字符常量。前者占两个字节,后者占1个字节。请分析下面的程序片段:
char c; //定义一个字符变量
c='a'; //正确
c="a";
//错误,c只能容纳一个字符
请思考:字符串常量"abc\n"包含几个字符?不是5个而是4个字符,其中"\n"是一个转义字符。但它在内存中占5个字节(包括一个"\0"字符) 。编译系统遇到"\"时就会把它认作转义字符的标志,把它和其后的字符一起作为一个转义字符。
如果"\"后面的字符不能与"\"组成一个合法的转义字符(如"\c"),则在编译时显示出错信息。如果希望将"\"字符也作为字符串中的一个字符,则应写为"abc\\n",此时字符包括5个字符,即a,b,c,\,n。如果有以下输出语句:
cout<<"abc\\\n"<<endl;
则会输出:
abc\ (然后换行)
同理执行
cout<<"I say \"Thank you!\"\n";
的输出是:
I say "Thank
you!"
如果在一个字符串中最后一个字符为"\",则表示它是续行符,下一行的字符是该字符串的一部分,且在两行字符串间无空格。如
cout<<"We must study C\ //本行最后的"\"后面的空格和换行均不起作用
++ hard!";
//本行的字符紧连在上一行最后的"\"前面字符之后
则输出:
We must study C++ hard!
符号常量
为了编程和阅读的方便,在C++程序设计中,常用一个符号名代表一个常量,称为符号常量,即以标识符形式出现的常量。
【例2.3】符号常量的使用。
#include <iostream>
using namespace std;
#define PRICE 30 //注意这不是语句,末尾不要加分号
int main ( )
{
int num,total;
num=;
total=num * PRICE;
cout<<"total="<<total<<endl;
return ;
}
C++常量(C++数值常量、字符串常量、符号常量)的更多相关文章
- extern字符串常量,宏定义字符串常量,怎么选
在使用常量的时候,我看到主要有两种写法: #define RKLICURegexEnumerationOptionsErrorKey @"RKLICURegexEnumerationOpti ...
- Java中String字符串常量池总结
最近到广州某建站互联网公司面试,当时面试官问假设有两个字符串String a="abc",String b = "abc";问输出a==b是true还是fals ...
- Java中字符串相加和字符串常量相加区别
有一道这样的程序: public class TestStringDemo { public static void main(String[] args) { String s1 = "P ...
- Java中String字符串常量池
首先看一个例子,通过这个例子更能快速理解String常量池 public static void main(String[] args) { String a = "ab"; St ...
- Java字符串常量池是什么?为什么要有这种常量池?
简单介绍 Java中的字符串常量池(String Pool)是存储在Java堆内存中的字符串池.我们知道String是java中比较特殊的类,我们可以使用new运算符创建String对象,也可以用双引 ...
- Java中的常量池(字符串常量池、class常量池和运行时常量池)
转载. https://blog.csdn.net/zm13007310400/article/details/77534349 简介: 这几天在看Java虚拟机方面的知识时,看到了有几种不同常量池的 ...
- Java进阶——Java中的字符串常量池
转载. https://blog.csdn.net/qq_30379689/article/details/80518283 字符串常量池 JVM为了减少字符串对象的重复创建,其内部维护了一个特殊的内 ...
- JVM字符串常量池StringTable
String的基本特性 String:字符串,使用一对""引起来表示. String sl = "hello"://字面量的定义方式: String s2 = ...
- Class常量池、运行时常量池、字符串常量池的一些思考
Class常量池.运行时常量池.字符串常量池 class常量池 java代码经过编译之后都成了xxx.class文件,这是java引以为傲的可移植性的基石.class文件中,在CAFEBABE.主次版 ...
随机推荐
- JQuery知识快览之三—JQuery对象集
本文讲述JQuery对象集的各相关知识 获取JQuery对象集 JQuery对象,和DOM对象是两个不同的东西,JQuery对象可以是DOM对象的封装,但是JQuery对象不只是DOM对象的封装,它还 ...
- sp_sys_ERPTrigger_base
USE [GalaxyPointDB24]GO/****** Object: StoredProcedure [dbo].[sp_zy_Process_scrap] Script Date: ...
- Scrapy集成selenium+PhantomJS+代理IP 解析js动态内容
转载于:http://blog.aizhet.com/web/16523.html
- HTTP 错误 404.2 - Not Found
前几天刚安装Windows Server 2008 r2 sp1 遇到问题之后,昨天我又遇到一个问题(但我不害怕有问题),提示: HTTP 错误 404.2 - Not Found由于 Web 服务器 ...
- CentOS 配置solr中文分词器
第一步:使用IK-Analyzer.把分析器的文件夹上传到服务器. 第二步:需要把分析器的jar包添加到solr工程中. [root@bogon IK Analyzer 2012FF_hf1]# cp ...
- mvcAPI (入门 3)(源码)
mvcAPI (入门 3)(源码) http://download.csdn.net/detail/chunfang740/9078579
- wireshark抓包直观图解 TCP三次握手/四次挥手详解
转http://www.seanyxie.com/category/linux/ 作者:seanyxie | 一. TCP/IP协议族 TCP/IP是一个协议族,通常分不同层次进行开发,每个层次负 ...
- SqlSever基础 delete 删除符合特定条件的元素
y 镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.---------------------------------------- ...
- Cheatsheet: 2014 10.01 ~ 10.30
.NET ASP.NET Web Api: Unwrapping HTTP Error Results and Model State Dictionaries Client-Side HTTP 20 ...
- Debian8 远程登录Permission Denied,please try again
多数是系统没有开启Root登录的权限. 修改root的ssh权限: ① vi /etc/ssh/sshd_config ② 找到配置项PermitRootLogin 将此项的值改为yes ③ 重启ss ...