c++-数据类型
admin
2024-04-23 01:41:01

c++-数据类型

  • 整型
    • 取值范围与内存溢出
  • 浮点型
    • 浮点型cout
    • setf显示精读
    • 浮点数的存储机制(还要再看 )
  • 字符型
    • 转义字符
  • 字符串型 - string
    • string与C字符串
    • 字符串操作
  • bool 类型
  • I/O
    • cin/cout
      • cout控制输出
      • endl

整型

  • short : 2bytes
  • int : 4bytes
  • long
  • long : long
  • char : 1bytes
int num; // 变量声明,开辟一个内存空间
num=1; // 变量赋值

取值范围与内存溢出

可以理解为:取值范围是一个闭环(如果超过范围就按照闭环去取值 )
limits
#include
宏定义
与数据类型有关的取值范围

浮点型

float 是有效位只有6位或7位(以科学计数法表示的情况下)
声明的时候,尽量使用double类型,编译器默认也是double类型
注意运算时的精读丢失

浮点型cout

默认显示后六位,四舍五入

setf显示精读

double 和 float 显示的精读不一样


cout.setf(ios_base::fixed,ios_base::floatfield);float a=10.0/3.0; // cout默认显示小数点后六位
const float b=1.0E6;
cout<

浮点数的存储机制(还要再看 )

二进制的科学计数法
整数部分和小数部分
小数部分转换成二进制要乘2,然后取整数部分
小数转成二进制:1.xxxx2E3(整数部分一定是1)
见视频

字符型

char ch='M'; // 77
int i=ch; // 77

转义字符

转义字符实际占用一个字节

宽窄字符

宽字符: 存储数据使用固定的字节数量
窄字符:存储数据使用不同的字节数量

字符串型 - string

字符串的定义

#include 
using namespace std;int main()
{string s1; // 默认值是空字符""string s2="hello";// 可以进行赋值string s3=s2; // 通过变量赋值// 通过构造的方式定义string s4(5,'s'); // 5个s -> "sssss"
}

string与C字符串

string字符串对象结尾没有\0
c字符串结尾有\0

string字符串可以进行赋值 (相当于深拷贝就可以了,相当于是可变对象)
c字符串 指针定义(char*)可以进行赋值,字符数组(char [])定义不可以赋值

strings.length() 计算长度
c字符串 – strlen() 计算长度

互相转化

// c转strig
#include  // length
#include  // strlen
char *a="hello";
string b;
b=a;
cout<

字符串操作

  • 索引

使用索引访问 s[idx]

  • 拼接

+
使用c++运算符重载的方式,不用担心内存溢出
string类型、c字符串类型(数组、指针)、字符,都可以进行拼接

string s1="hello";
string s2="world";
char *s3="qt";
char s4[]="mfc";
char c5='@';string dst1=s1+s2;
string dst2=s1+s3;
string dst3=s1+s4;
string dst4=s1+c5;cout<
  • 插入

str.insert(pos,string)
注意第一个参数pos可能会越界

string s1="hello";
s1.insert(3,"world");
cout<
  • 删除

str.erase(pos,len),不指明len则删除到结尾
pos越界会异常,len越界会到结尾

string s1="hello";
s1.insert(3,"world");
cout<
  • 提取子串

str.substr(pos,len)
pos越界会异常,len越界会到结尾

string s1="hello";
s1.insert(3,"world");
cout<
  • 查找

str1.find(str2,start_pos) 从str1的(下标)start_pos开始查找
str1.find(str2,end_pos) 最多找到str1的下标(end_pos)

int idx=str1.find(str2,start_pos)
int idx2=str1.rfind(str2,end_pos)
  • 其他函数
str.append()
str.at()
str.find_first_of() // 查找共同字符的索引

bool 类型

c 语言一般没有bool类型

#include 
bool flag=true;

c++ 直接支持bool类型数据
注意: cout bool类型还是0、1

I/O

cin/cout

相当于数据流
cin istream类对象, cin 对于输入的内存时根据数据类型进行判断的
cout ostream类对象, <<表示把字符串发送给cout,表示插入运算符,即把字符串插入到输出流当中
属于内置对象

注意:编译器会根据上下文,判断被重载的运算符的含义

#include 
int x;
float y;
cin>>x;// 连续接收数据
cin>>x>>y;// endl
cout<

cout控制输出

cout 输出的默认是以10进制显示

cout<

endl

endl是一个特殊的c++符号
endl插入到输出流中,将导致屏幕光标移动到下一行的开头

cout<

endl\n

cout<<"some str\n";// 等价于
cout<<"some str" <

相关内容

热门资讯

小雪降温,别错过这几道滋补菜,... 小雪降温,别错过这几道滋补菜,孩子一吃就两碗,御寒强免疫 小雪时节天气渐冷,下面分享几道滋补家常菜,...
原创 它... 在探讨美食的海洋中,有一种食物以其独特的魅力,成为了众多男性心中的挚爱。它不仅满足了味蕾的极致享受,...
原创 它... 标题:快餐文化下的童年记忆 在快节奏的现代生活中,快餐以其便捷、快速的特点成为了人们餐桌上的常客。...
从“蟹季限定”到“四季常热” 味觉公路 度假区(阳澄湖镇)供图 □ 本报记者 陈诚 王俊杰 入冬后,阳澄湖畔有了阵阵凉意,苏州“村...
佳木斯市再添新景 四丰山水库打... 本文转自:人民网-黑龙江频道人民网哈尔滨11月19日电 近日,佳木斯四丰山水库再添新景——沿岸休闲步...