C++教程|C++数据类型

C++数据类型

数据是程序处理的对象,C++提供了多种数据类型。1

1. C++字符集

字符集是构成C++程序语句的最小元素。字符集由下列各类字符构成:

  1. 英文字母 A~Z, a~z
  2. 数字 0-9
  3. 特殊字符:
    在这里插入图片描述
    可见,C++字符集包含除@之外的所有键盘能输入的字符。这些字符可以组合起来作标识符、数据,也可以单独使用,如+、-、*、/分别表示加减乘除运算。

2. C++基本数据类型

在这里插入图片描述
C++的基本数据类型分为五大类,即布尔型、整数型、实数型、空值型,分别用关键字bool、char、int、float、void表示,如下表所示。其中布尔型也称为逻辑型。有的类型还可以通过加上修饰符进一步细分,如signed、unsigned分别表示有无符号,short、long等。
在这里插入图片描述
*表中符号[ ]表示可选,表示其中的内容可以缺省,也有默认的意思。如[signed] char表示char类型默认为signed char;使用类型名定义一个变量时,[]中的内容可以省略。

3. 数值

数值就是指直接参加运算的数。在有的教科书上称为文字常量(literal constant)或常量。文字是程序中直接用符号表示的数值,常量是指在程序运行过程中,其值不能被改变的量。出现在程序中的数值在程序运行过程中是不能被改变的,故称之为文字常量。通俗说,文字常量就是数值。

3.1 整型数

3.1.1 各种进制的整数表示
  1. 十进制整数
    十进制是整型数据的默认表示形式,不需要加任何前缀。我们熟悉的数学中的数据就是用十进制表示的。
    十进制使用的数字有0、1、2、3、4、5、6、7、8、9。如:123、456、1、-123都是十进制整数。
  2. 八进制整数
    以数字0作为前缀, 数字为0、1、2、3、4、5、6、7。如:0123表示八进制数123即(123)8。其值为: 1 × 8 2 + 2 × 8 1 + 3 × 8 0 1×8^2+2×8^1+3×8^0 1×82+2×81+3×80,等于十进制数83。-017表示八进制数(-17)8,即十进制数-15。
  3. 十六进制整数
    0 x 0x 0x 0 X 0X 0X开头, 数字有0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。其中英文字母A~F代表的值为10~15。
    如: 0 x 12 B 0x12B 0x12B表示十六进制数(12B)16,其值为: 1 × 1 6 2 + 2 × 1 6 1 + 11 × 1 6 0 1×16^2+2×16^1+11×16^0 1×162+2×161+11×160,等于十进制数299。 − 0 x 17 -0x17 0x17等于十进制数-23。
    十六进制使用的英文字母除了使用大写字母外还可以使用a、b、c、d、e、f小写字母,并且大小写可以混用。

注意:
各进制数只能使用其规定的数字, N进制使用的数字为0~N-1。如0128是不合法的八进制数,因为8不是八进制所使用的数字。
八进制整数前不能省略0,省略了0就是十进制数。

3.1.2 各种类型整数的表示
  1. 基本整型数
    基本整型数不需要在数字后加任何后缀。在16位系统下,整型数的长度为16bit(2字节) 如:12、-1235等是用十进制表示的整型数。如0xc、0xfb2d是用十六进制表示的整型数,其值分别为12、-1235。
    在32位系统下,长度为32bit(4字节),如:12、-1235等。12、-1235用十六进制表示分别为0xc、0xfffffb2d。

  2. 长整型数
    长整型的长度与取值范围与32位系统下的基本整型一样。表示方法则是在数字后加l或L做标记。如:345667L、-123L、12l。

  3. 无符号整型数
    无符号整型数据的长度与基本整型常量一样。但取值范围不同,16位系统下,范围为0~65535;32位系统下范围为0~4294967295。表示方法是在数字后加u或U做标记。如:235u、12U。其中12u和12的区别是12u为无符号整数,12为有符号整数。

  4. 无符号长整型数据
    无符号长整型的长度与取值范围与32位系统下的基本整型一样。表示方法是在数字后同时跟有l(或L)和u(或U)。如:235Lu、12lU。
    当同时跟有L和U,表示无符号长整型的常量时,先后顺序任意。如17896UL可表示成17896LU。
    注意:
    为了区别表示长整型数字母l与数字1,一般使用大写L;
    在定义一个整型数时,不管采用哪种进制形式,都不要超过其表示范围。

3.2 浮点型数

浮点型数即我们平常使用的实型数,由整数部分和小数部分组成。通常有两种表示形式:

  1. 十进制数形式
    由0~9和小数点组成。如:23.456、-12.3等。
  2. 指数形式
    表示格式为:
    十进制浮点型数|基本整型数1 E 基本整型数2

注意:
当以指数形式表示一个实数时,整数部分和小数部分可以省略其一,但不能都省略。如.123E5、123.E-6都是正确的,但不能写成E-2这种形式。
浮点数默认为双精度浮点型,在内存中占8个字节,取值范围为±1.7e±308。如果带有后缀F或f, 则为float类型,在内存中占4个字节,取值范围为±3.4e±38。

3.3 字符型数

字符数是用英文单引号括起来的一个字符。如:‘a’,'A’等。

有些ASCII码字符如回车、退格等不能直接用在用单引号中。这些数据可用转义序列来表示 :

  1. 转义符形式1:
    \字符助记符
  2. 转义符形式2:
    \字符的ASCII码值

字符助记符只有一个字母,例如n、t分别为newline(换行符)、table(制表符)的助记符。故\n、\t分别表示换行符与制表符。
字符的ASCII码值的形式为\ooo与\xhh, 其中\ooo表示3位八进制数,\xhh表示2位十六进制数。例如, 制表符table用第2种形式的转义序列表示为\011或\x09。\ooo中,ooo为不超过3位的八进制数字,可以不以0开头。

常用预定义的转义序列:
在这里插入图片描述

3.4 字符串

字符串数值简称字符串,是使用一对双引号括起来的字符序列。例如,

英文串: “This is a string\n”
中文串: “我们都是中国人\t我们热爱自己的祖国\n”

字符串与字符比较的区别:

  1. 字符由单引号括起来,字符串由双引号括起来。如:'a’与"a"分别表示a字符与a这个字符串。
  2. 字符只能是单个字符,字符串则可是零个或多个字符。如:'abd’是不合法的。但""是合法的,表示空串。
  3. 字符占一个字节的内存空间,字符串占内存字节数等于字符串的长度加1。系统自动在字符串末尾添加’\0’作为结束标记。如:'a’在内存中占用一个字节;而"a" 在内存中占用两个字节,分别存放a和\0。

3.5 布尔型数

布尔型数值只有两个:true(真)和false(假)。
在C++的算术运算式中,把布尔型数据当作整型数据,true与false分别当作1与0。在逻辑运算式中则把非0数据当成true, 把0当成false。
注意:
不能将true与false写成TRUE与FALSE。

4 示例代码

以下代码展示了转义序列的用法。

	/**************************************************
	*  程序名: p2_1.cpp                             *
	*  功  能: 转义序列的用法                         *
	**************************************************/
	#include <iostream>
	using namespace std;
	int main()
	{
	    cout<<'A'<<'\t'<<';'<<'\n';
	    cout<<'\102'<<'\011'<<'\073'<<'\012';
	    cout<<'\103'<<'\11' <<'\73' <<'\12';
	    cout<<'\x44'<<'\x09'<<'\x3b'<<'\x0a';
	    cout<<'\x45'<<'\x9' <<'\x3b'<<'\xa';
	    cout<<"\x46\x09\x3b\x0d\x0a";
	    cout<<"\xcd\xcd\xcd\xcd\xcd"<<endl;
		system("pause");
       return 0;
	}


  1. 本教程仅供教学使用,参考教材 :《C++语言程序设计教程》,杨进才、沈显君编著,清华大学出版社,2022年1月第4版 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皖山文武

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值