在c++中,我们需要基本类型,按照一定的格式,创建自己的数据类型。
c++中,有两种基本数据类型:整型、浮点类型、bool。
整型:char、float、int、long、long long,每种类型都有符号版本和无符号版本,共10种类型可供选择。
符号版本:前面加signed关键字,也可以省略。如:signed int
无符号版本:前面加unsigned关键字,不能取负值。如:unsigned int
在c++中,我们可以使用sizeof运算符来查看变量或类型的长度,单位为字节。 如:int age ; sizeof (age),sizeof (int)
注意:查看变量时,括号可以省略;查看类型时,不能省略。
在climits头文件中,包含了整型限制的一些信息,如:最大值、最小值等。如:
1 #include<iostream> 2 #include<climits> 3 4 using namespace std ; 5 6 int main(){ 7 int int_max = INT_MAX ; //int最大值 8 int int_min = INT_MIN ; //int最小值 9 unsigned int u_int_max = UINT_MAX ; //unsigned int 最大值 最小值为0 10 11 short short_max = SHRT_MAX ; 12 short short_min = SHRT_MIN ; 13 unsigned short u_short_max = USHRT_MAX ; 14 15 long long_max = LONG_MAX ; 16 long long_min = LONG_MIN ; 17 unsigned long u_long_max = ULONG_MAX ; 18 19 long long llong_max = LLONG_MAX ; 20 long long llong_min = LLONG_MIN ; 21 unsigned long long u_llong_max = ULLONG_MAX ; 22 23 char char_max = CHAR_MAX ; 24 char char_min = CHAR_MIN ; 25 signed char s_char_max = SCHAR_MAX ; //signed char的最大值 26 signed char s_char_min = SCHAR_MIN ; //signed char的最小值 27 unsigned char u_char_max = UCHAR_MAX ; 28 29 int char_bits = CHAR_BIT ; //char的位数 30 31 cout << "int is "<<sizeof(int) << " bytes" << endl ; 32 cout << "short is "<< sizeof short_max << " bytes" << endl ; 33 34 cout << "maximun values :" << endl ; 35 cout << "int : " << int_max << endl ; 36 cout << "short :" << short_max << endl ; 37 cout << "long : " << long_max << endl ; 38 cout << "long long :" << llong_max <<endl ; 39 40 return 0 ; 41 }
整数字面值:c++可以使用三种不同的计数方式来表示整数:十进制、八进制、十六进制。
十进制:第一位为1至9的整数,如:23
八进制:第一位为0,第二位为1至7的整数,如:025
十六进制:前两位为0x的整数,如:0x23a
iostream头文件中,定义了控制符dec、oct、hex,分别指示cout以十进制、八进制、十六进制格式显示整数,默认是十进制,在修改之前,原来的格式将一直有效。如:
#include<iostream> using namespace std ; int main(){ int chest = 42 ; int waist = 42 ; int inseam = 42 ; cout << "Monsieur cuts a striking figure!" << endl ; cout << "chest = " << chest << " (decimal for 42)" << endl ; cout << hex << "waist = " << waist << " (hexadecimal for 42)" << endl ; cout << oct << "inseam = " << inseam << " (octal for 42)" << endl ; return 0 ; }
cout << oct ; 不显示任何内容,只是告诉cout以何种方式显示数字。
整数字面值默认是int类型,long l = 235L ; long long ll = 235LL ; unsigned long ul = 2334uL ;
bool类型:c++中添加了bool类型,值可以是true、false,c++将非0视为true,0视为false。
const限定符:定义常量,以前我们可以使用#define ZERO 0 预处理命令,现在我们可以使用const限定符,如:
const int P = 3.14 ; p定义后,以后就不能修改了。
浮点数:float、double、long double
浮点数常量默认是double类型,要表示float和long double : 234.3F、234.2L ;
类型转换:(这个以后总结)
1:初始化和赋值进行的转换。将一种类型的值赋值给另一种类型的变量时,值将被转换为接受变量的类型,
如:so_long的类型为long,thirty的类型为short,则:so_long = thirty ; 程序将thirty的值扩展为long值,扩展后得到一个新值,这个新值被存储在so_long存储空间中。thirty值不变。
2:表达式中的转换。