基本类型大致分为整型(字符型本质上也是整型)和浮点型,在讨论它们之前,先来看看变量命名规则吧。
变量命名
- 变量名由字母,数字和下划线(_)组成
- 不能用数字来开头
- 区分大小写
- 不能使用关键字命名,尽量避免使用保留字(后果是不确定的)
位与字节
位(bit):计算机内存的基本单位。
一个位上可以存储0 或 1,这就是二进制,那么4位的内存单元可以表示多少数字呢?2的4次方个,即16个数字,位越多表示的范围就越大。
字节(byte):通常指的是8位的内存单元。
整型
有char short(短整型) int(整型) long(长整型 ) long long(长长整型)这五种,short是short int 的简称,long int, long long int。
根据C++的标准,char至少16byte
int至少等于short
long至少32byte,且大于等于int
long long至少 64byte,且大于等于long
具体取决于实现,下面是两种查看的方法:
- sizeof运算符会返回数据类型或着变量所占内存大小,单位是字节,我们可以借此来看一下各类型所占大小:
#include <iostream>
int main()
{
using namespace std;
char a1;
short a2;
int a3;
long a4;
long long a5;
//注意sizeof(类型)或sizeof(该类型的变量名)都可以的
cout << sizeof(a1) << endl;
cout << sizeof(a2) << endl;
cout << sizeof(int) << endl;
cout << sizeof(long) << endl;
cout << sizeof(a5) << endl;
return 0;
}
如果对类型(如int)使用sizeof则需要带上括号,如果对变量,则可有可无,建议都带上。
运行结果(结果可能不同):
2.还可以通过头文件climits
它包含关于整型限制的信息。
初始化
- int a = 10;
- int a(10);
- int a = { 10 };
- int a{ 10 };
以上四种都是将变量a初始化为10,如果在3,4的初始化列表中什么都不写,a将被初始化为0。
C++11标准使得可将大括号初始化器用于任何类型(可以省略等号)。
有(无)符号类型
char short int long long long默认是有符号的类型,也就是说可以表示负数,当然也可以显示的声明(如 signed int)。
无符号类型,需要加上unsigned关键字,如unsigned long,只能表示非负数。
注意 unsigned本身 是 unsigned int 的缩写。
在只表示0 和 正整数的情况下,无符号的能表示的最大值就要比有符号的大。
整型选择
一般int就行。
自然长度:指计算机处理起来效率最高的长度。
通常,int 被设置为计算机自然长度,因此一般int就行。
整型字面量(常量)
字面量就是直接写出来的整数(如12),有四种不同的计数方式来书写整型:
- 十进制:10,16....
- 十六进制:0x或0X开头,0-9和a-f(或A-F)来表示,如0x15F
- 八进制:0开头,0-7来表示,如0167
- 二进制:0b开头,0-1来表示,如0101110
不管以哪种方式书写,最终存储在计算机中的都是二进制数
C++如何确定常量的类型
首先看后缀,后缀用来表示存储类型,大小写都可,如5L,就存储为long类型。
后缀表示:
unsigned int:U
long :L
long long:LL
unsigned long :UL / LU(哪种顺序都可以)...
如果没有后缀,C++将整型常量存储为int类型,如果数字超过int类型所能表示的看,会存储为稍微大点的能表示该常量的类型中。
char类型:字符和小整数
编程语言通过使用字符的数值编码来间接存储字符,所以说char类型是一种整型。
char类型占1字节,也就是能表示128个字符。
在ASCII字符集中,字符A的编码为65。
C++对字符使用单引号,字符串使用双引号
初始化
- char ch = 65;
- char ch = 'A'; 推荐这种,清晰且可移植性强
signed char 和 unsigned char
char在默认情况下为哪种取决于实现,一般表示字符这两种类型的范围都能容纳,如果要表示负整数,可以显示表示signed char
补充:const修饰的变量称为常量,如const int A = 10;必须在声明是初始化,且之后不能修改。
一般变量名大写。
感谢您花时间阅读我的文章,有任何想法,欢迎留言,咱们一起探讨!