C++基本数据类型
第一章 C++ 基本数据类型
前言
C++基本数据类型详解
基本类型包括:short、int、long、long long、float、double、char、string(s是小写)
32位下基本类型占字节:
char :1个字节
char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即4GB)
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4个字节
long long: 8个字节
unsigned long: 4个字节
原文链接:https://blog.csdn.net/ykun089/article/details/107484042
64位下基本类型占字节:
char :1个字节
char*(即指针变量): 8个字节
short int : 2个字节
int: 4个字节
unsigned int : 4个字节
float: 4个字节
double: 8个字节
long: 4 / 8个字节(视具体情况而定)
long long: 8个字节
unsigned long: 8个字节
原文链接:https://blog.csdn.net/ykun089/article/details/107484042
总结:其实只有指针和long型变量不一样
- 32位 指针 :4个字节 long :4个字节
- 64位 指针 :8个字节 long :4 / 8个字节
一、整形
一个字节占8位
- short(短整型 2字节)
- int(整型 4字节)
- long(长整型 4字节 在64位linux虚拟机里是8个字节)
- long long(长长整型 8字节)
short a = 32768;//错误,结果输出为-32768,因为超出取值范围了
int b=32768;//正确
long c=1;
//long c=1l;
long long d=1;
//long long d=1l;
sizeof关键字可以统计数据所占内存大小(单位是字节)。
cout <<sizeof(short)<< "-"<<sizeof(int)<< "-"
<<sizeof(long)<< "-"<<sizeof(long long)<<endl;
//2-4-4-8
二、实型-浮点型
- float(单精度 4字节 7位有效数字)
- doubel(双精度 8字节 15~16位有效数字)
float a=3.1415926;//输出结果3.14159,此时3.1415926这个小数默认是双精度
float b=3.14159f;//给小数末尾加f使其默认为float类型
double a1=3.1415926;//输出结果3.14159
float c=3e2;//输出结果300,意思为3*10^2
float d=3e-2;//输出结果0.03,意思为3*0.1^2
注:默认小数为双精度,默认情况下输出小数会显示5位有效数字
三、字符和字符串
- 字符型变量用于显示一个字符。
c和c++中字符型变量只占一个字节。
字符型变量不是把字符本身放到内存中存储,而是把其对应的ASCll编码放到存储单元中。
//ASCll编码a-97,A-65
char a='a';
- 字符串类型
在C中用【char 变量名[]=“字符串值”; 】来定义,
在C++中用 【string 变量名=“字符串值”;】来定义,
在Java中用【String 变量名=“字符串值”;】来定义。
c++和java中都可以用c的办法定义字符串。(严格来说,这叫字符数组)
四、布尔类型
bool(1个字节 只有两种值-true或者flase)
bool a=true;//true-真,实值为非0
bool b=flase;//flase-假,实值为0
五、附录-转义字符表
转义字符 |
含义 |
ASCII码值(十进制) |
\a |
警报 |
007 |
\b |
退格(BS) ,将当前位置移到前一列 |
008 |
\f |
换页(FF),将当前位置移到下页开头 |
012 |
\n |
换行(LF) ,将当前位置移到下一行开头 |
010 |
\r |
回车(CR) ,将当前位置移到本行开头 |
013 |
\t |
水平制表(HT) (跳到下一个TAB位置) |
009 |
\v |
垂直制表(VT) |
011 |
\\ |
代表一个反斜线字符"" |
092 |
’ |
代表一个单引号(撇号)字符 |
039 |
" |
代表一个双引号字符 |
034 |
? |
代表一个问号 |
063 |
\0 |
数字0 |
000 |
\ddd |
8进制转义字符,d范围0~7 |
3位8进制 |
\xhh |
16进制转义字符,h范围0-9,a-f,A-F |
3位16进制 |
六、附录-算数运算符
运算符 |
术语 |
示例 |
结果 |
+ |
正号 |
+3 |
3 |
- |
负号 |
-3 |
-3 |
+ |
加 |
10 + 5 |
15 |
- |
减 |
10 - 5 |
5 |
* |
乘 |
10 * 5 |
50 |
/ |
除 |
10 / 5 |
2 |
% |
取模(取余) |
10 % 3 |
1 |
++ |
前置递增 |
a=2; b=++a; |
a=3; b=3; |
++ |
后置递增 |
a=2; b=a++; |
a=3; b=2; |
– |
前置递减 |
a=2; b=–a; |
a=1; b=1; |
– |
后置递减 |
a=2; b=a–; |
a=1; b=2; |
注:两个小数不能做取余运算 |
|
|
|
七、附录-赋值运算符
运算符 |
术语 |
示例 |
结果 |
= |
赋值 |
a=2; b=3; |
a=2; b=3; |
+= |
加等于 |
a=0; a+=2; |
a=2; |
-= |
减等于 |
a=5; a-=3; |
a=2; |
*= |
乘等于 |
a=2; a*=2; |
a=4; |
/= |
除等于 |
a=4; a/=2; |
a=2; |
%= |
模等于 |
a=3; a%2; |
a=1; |
八、附录-比较运算符
运算符 |
术语 |
示例 |
结果 |
== |
相等于 |
4 == 3 |
0 |
!= |
不等于 |
4 != 3 |
1 |
< |
小于 |
4 < 3 |
0 |
> |
大于 |
4 > 3 |
1 |
<= |
小于等于 |
4 <= 3 |
0 |
>= |
大于等于 |
4 >= 1 |
1 |
九、附录-逻辑运算符
运算符 |
术语 |
示例 |
结果 |
! |
非 |
!a |
如果a为假,则!a为真; 如果a为真,则!a为假。 |
&& |
与 |
a && b |
如果a和b都为真,则结果为真,否则为假。 |
|| |
或 |
a || b |
如果a和b有一个为真,则结果为真,二者都为假时,结果为假。 |
注:在C++中除了0其他都为真。对于&&-同真为真,其余为假;对于或-同假为假,其余为真 |
|
|
|
十、附录-基本类型表
数据类型 |
说明 |
字节数 |
取值范围 |
bool |
布尔型 |
1 |
true,false |
char |
字符型 |
1 |
-128~127 |
unsigned char |
无符号字符型 |
1 |
0~255 |
short |
短整型 |
2 |
-32768~32767 |
unsigned short |
无符号短整型 |
2 |
0~65535 |
int |
整型 |
4 |
-2147483648~2147483647 |
unsigned |
无符号整型 |
4 |
0~4294967295 |
long |
长整型 |
4 |
-2147483648~2147483647 |
unsigned long |
无符号长整型 |
4 |
0~4294967295 |
float |
单精度型 |
4 |
-3.4×10-38~3.4×10-38 |
double |
双精度型 |
8 |
-1.7×10-308~1.7×10-308 |
long double |
长双精度型 |
8 |
-1.7×10-308~1.7×10-308 |