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

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" <

相关内容

热门资讯

好听的中文rap歌曲 好听的中文rap歌曲光光的等待。光光的等待:我一直在等待。直到眼泪流下来。
广西蓝天航空职业学院可以专升本... 广西蓝天航空职业学院可以专升本吗?本科又有哪些学校可以的,前提你必须要专科升本科,等你学习完专科,然...
一念如斯的意思是什么? 一念如斯的意思是什么?一念如斯:一个像这样的念头。
胜女的代价曾楚楚是张檬吗?完全... 胜女的代价曾楚楚是张檬吗?完全是两个人啊?是张檬,只是发型变了是同一个人啊,只是当时为了拍摄把头发剪...
秦皇岛夜光KTV在那里 秦皇岛夜光KTV在那里听说这个KTV挺好的 我想了解一下秦皇岛海港区燕山大街98号
帮我取一个好听的古代名字,要有... 帮我取一个好听的古代名字,要有意境的。姓氏是白。白毛女,白骨精,白兔,白发三千丈白旬尘 【旬是时间...
皎月女神出纳什之牙跟智慧末刃走... 皎月女神出纳什之牙跟智慧末刃走攻速法强流靠谱吗?不要智慧末刃出个纳什之牙就够了,你觉得不保险带个冰杖...
西安90后女孩10元买彩票中1... 西安90后女孩10元买彩票中1千万,中彩票是种什么样的体验?做一个非常好的体验,自己没有做太多的事情...
求些小说像常书欣,徐公子,绯炎... 求些小说像常书欣,徐公子,绯炎,无罪这些人的。最基本的要求开篇要能引人入胜79fa00dfb8121...
除《流浪地球》和《魔鬼积木白垩... 除《流浪地球》和《魔鬼积木白垩纪往事》,刘慈欣还出过那些书?《超新星纪元》《球状闪电》“地球往事”系...
老师好 老师好老师好我有时候说话说着说着就来气还有时候会把一件别人心中很普通的事情想的很复杂会越想越好或者越...
容祖儿唱了一首歌里面好像有故事... 容祖儿唱了一首歌里面好像有故事两个字是什么歌呢应该是小小吧
墨尔本晴中间那段什么意思 墨尔本晴中间那段什么意思1分40秒到1分55秒,是不是和符榕的故事有关,有一个女孩喜欢的男生去了墨尔...
我现在车被偷了,报案了,我想是... 我现在车被偷了,报案了,我想是找不会来的,我想去办理报失手续,但不知道办理后能否再买一台新的车?怎么...
龙抬头的传说的日记 龙抬头的传说的日记龙抬头的传说的日记二月二龙抬头,原来是一个如此感人的故事! 传说,古时候,有一个皇...
小红帽给你印象最深刻的是 小红帽给你印象最深刻的是小红帽给你印象最深刻的是这个故事告诉了我们不能轻易相信别人,小孩子一定要听父...
孩子拼乐高和家长拼乐高的区别是... 孩子拼乐高和家长拼乐高的区别是啥?拼乐高享受的是其中的过程, 可以静心。见多了孩子拼乐高,偶尔看见家...
马鸣风萧萧中的寇英杰是谁扮演的... 马鸣风萧萧中的寇英杰是谁扮演的/沈晓海--饰寇英杰
探海望山读南沙!2025“羊城... 7月7日,2025年“羊城八景”评审调研的步履延伸至广州南沙区。 在港湾街道企业投资服务中心,评审专...
系统集成项目管理工程师考试难不... 系统集成项目管理工程师考试难不难?行业平均通过率:中级20%,高级10%我们的通过率:中级50%,高...