注意:这是第二讲,第一讲请访问: C++入门教程(一、初步了解)。
基本数据类型
定义规则
C++的变量、数组、函数等数据定义规则和C语言一样,都是 datatype xxx
这样的结构。其中 datatype
有 int
、long long
、float
、double
、bool
、char
、string
(C++特有)以及自定义的数据类型(结构体,后面再说)。变量的 datatype
理解起来很简单,就是变量是怎么样的,就是什么类型。至于数组的 datatype
,那就是数组里面的每个元素是什么 datatype
,数组就是什么 datatype
。数组的命名规则是:datatype xxx[size]
。其中 size
代表数组的大小。注意 size
不能使用科学计数法,比如 1e7
,这是因为这些数都是双精度浮点数( double
)类型的。函数的事我们放在后面说。
整数类型:int
C++的整数类型使用的 datatype
是 int
。比如定义一个名称为 a
,大小为1000的 int
类型数组:int a[1000];
。
单精度浮点数类型:float
double
和 float
同可以表示小数,具体定义规则不再赘述。但有人可能要问了,float
和 double
有什么区别?其实 double
的精度是 float
的2倍。float
是32位IEEE 754单精度浮点数1位符号(8位为指数,23为值),即 float
具有7位十进制数字精度。double
是64位的IEEE 754双精度浮点数(符号1位,指数11位,值52位),即 double
具有15位十进制数字的精度。
双精度浮点数类型:double
double
由于精度高一些,所以在同可以使用 float
和 double
的时候,建议选择 double
类型。
布尔类型:bool
布尔类型只有两种可能:true
(真)和 false
(假)。也可以用数字表示:1
(真)和 0
(假)。一般用于判断。
字符:char
最简单的字符数据类型是 char
数据类型。该类型的变量只能容纳一个字符,而且在大多数系统上,只使用一个字节的内存。以下示例即声明了一个名为 letter
的 char
变量。请注意,这里的字符常数就是赋给变量的值,要用单引号括起来。
#include <iostream>
using namespace std;
int main()
{
char letter;
letter = 'A';
cout << letter << endl;
letter = 'B';
cout << letter << endl;
return 0;
}
字符串:string
使用C++中的 string
类型,需要引入 string
库:#include <string>
。对位和对串操作其实很简单,只需要使用数组的访问方式就可以了:
string s = "abcdef";
cout << s[0] << endl;
string
还有许多内置的函数,例如:
string s = "a";
s.append(2,'b'); //s.append(n,c); 在s串后面加入n个c字符(append还有其他用法,详情可百度)
s.erase(s.begin(),s.begin()+2); //s.erase(l,r); 删除某个区间,l,r都为迭代器
s.erase(it); //删除一个字符,it为迭代器
s.size(); //返回字符串s的长度大小
s.begin(); //返回首位置的迭代器
s.end();//返回末位置的迭代器
s.insert(it,ch); //在it位置插入ch字符,it为迭代器
s.resize(len,c); //把字符串当前大小置为len,并用c填充不足的部分
s.empty(); //判断是否为空串
s.length(); //返回字符串的长度
s.max_size(); //返回当前系统string对象可存放的最大长度
s.capacity(); //返回当前容量
s.at(k); //返回第k+1个字符(该用法会坚持是否越界)
s.c_str(); //返回C字符串的指针,内容为s串
s.find(s1); //查找s中是否包含s1,并返回头位置,找不到则返回string::npos
s.replace(k,x,ch); //从k位置开始,把后面的x个元素替换为ch(还有很多其他用法)
s.swap(s2); //交换两个string字符串
string
的用法还有很多,如果大家支持我,我后面还会专门出一期讲解字符串的博客。
以上就是我为大家带来的“C++入门教程(二、基本数据类型)”,大家学会了吗?