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 )类型的。函数的事我们放在后面说。
intC++的整数类型使用的 datatype 是 int 。比如定义一个名称为 a ,大小为1000的 int 类型数组:int a[1000]; 。
floatdouble 和 float 同可以表示小数,具体定义规则不再赘述。但有人可能要问了,float 和 double 有什么区别?其实 double 的精度是 float 的2倍。float 是32位IEEE 754单精度浮点数1位符号(8位为指数,23为值),即 float 具有7位十进制数字精度。double 是64位的IEEE 754双精度浮点数(符号1位,指数11位,值52位),即 double 具有15位十进制数字的精度。
doubledouble 由于精度高一些,所以在同可以使用 float 和 double 的时候,建议选择 double 类型。
bool布尔类型只有两种可能:true(真)和 false(假)。也可以用数字表示:1(真)和 0(假)。一般用于判断。
char最简单的字符数据类型是 char 数据类型。该类型的变量只能容纳一个字符,而且在大多数系统上,只使用一个字节的内存。以下示例即声明了一个名为 letter 的 char 变量。请注意,这里的字符常数就是赋给变量的值,要用单引号括起来。
#include
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 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++入门教程(二、基本数据类型)”,大家学会了吗?