数据类型和类型转换(C++)

本文详细介绍了C++中不同类型的变量,包括整型(int,unsigned等)、浮点型(float,double)、字符型(char)和字符串(string)以及布尔型(bool)。文章阐述了如何在这些类型间进行转换,如int(a)、float(a)、char(a)等函数用于转换,以及string的成员函数.c_str()、stoi()、stof()等方法。此外,还提到了布尔型与数字和字符之间的转换规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


单个变量的类型大概有数值型和字符型这两大类,也可以加上布尔型。

数值型

整型

整型用来表示整数,最常用的是int,以声明一个变量,并赋值为1为例:

//C++可以在声明变量的时候赋值,也可以先声明,之后再赋值,后面不再重复。
int a = 1;	//声明的时候同时赋值
int b;
b = 2;      //先声明,再赋值
int c = 3, d, e; //可以同时声明多个变量

除此之外,还有很多其他的整型类型,unsigned表示无符号数(0和正数),列举如下:

表格引用自:https://blog.youkuaiyun.com/luyaozhima/article/details/107042303

类型所占字节数表示范围
short int2-32,768 ~ 32,767
unsigned short int20 ~ 65,535
int4-2,147,483,648 ~ 2,147,483,647
unsigned int40 ~ 4,294,967,295
long int4-2,147,483,648 ~ 2,147,483,647
unsigned long int40 ~ 4,294,967,295
long long in8-92233372036854775808 ~ 922333720368547758087
unsigned long long int80 to 18,446,744,073,709,551,615

其他类型转整型

函数:int(a)或long(a)等
参数:a可以是char,float,double,bool等
返回:整型数值

浮点型

浮点型用来表示小数,有float和double两种,区别在于所占大小和表示精度不同。

如下表所示:

数据类型占用空间有效数字范围
float4字节7位有效数字
double8字节15~16位有效数字

定义一个浮点数示例:

float f = 1.5;

其他类型转浮点型

函数:float(a)或double(a)
参数:a可以是char,int,double,bool等
返回:浮点型数值

字符型

字符

字符用单引号’’括起来,

/*
直接赋值字符或者ASCII值,效果是相同的
示例的a和b的值都为字符a
*/
char a = 97;
char b = 'a';

其他类型转char型

函数:char(a)
参数:a可以是int,float,double,bool等(但一般不会把浮点数转为字符)
返回:ASCII码 (0~255)

字符串

string s = "abc";

其他类型和string互转

char和string互转

*string→const char ***
string的成员函数.c_str() //返回const char

string s="abc";
const char *ch=s.c_str();

char[]→string

char ch[]="abcd";
string s(ch);  //调用string的拷贝构造函数
string s=ch;   //调用string的赋值构造函数

数值和string互转

string→数值

函数:stoi(s)、stol(s)、stof(s)、stod(s)等
参数:string类变量s,或常量字符串
返回:int、long、float、double等

string s="1.56";    
int i = stoi(s);    // string转int
long l = stol(s);   // string转long
float f = stof(s);  // string转float
double d = stod(s); // string转double

数值→string

函数:to_string(a)
参数:a可以是int、long、float、double等
返回:string

/*
a可以是int、long、float、double等,
注意float和double转为string有6位小数,不够的话会用0补齐
*/
string s = to_string(a);

布尔型

真被解析成1,假被解析成0。
用数字赋值时,0为假,其他都为真;
用字符赋值时,’\0’为假,其他都为真。

bool a = true;   // 1
bool a = false;  // 0
bool b = 'a';    // 1
bool c = -5;     // 1
bool d = 0;      // 0
cout<<c<<endl;   // 输出:1

类型转换

可以向上面的例子一样直接赋值,也可以用bool()来进行转换。

函数:bool(a)
参数:a可以是char,float,double,bool等
返回:布尔值,0或1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值