数据类型
从广义上根据量的值是否可变,可分为常量和变量两种数据类型。
根据数据复杂程度,划分为基本数据类型和构造数据类型这两大类。
其中,基本数据类型包括:整型(short,int,long)、实型(又称浮点型)(float和double)、字符型char、布尔型bool等。
构造数据类型包括:数组类型、枚举类型enum、指针类型、引用类型、结构体struct、联合体union(又称联合,共用体)、类class等,他们可以通过其他的数据类型进行构造,由程序员自定义,又称为自定义数据类型。
基本数据类型
基本数据类型包括整型(short,int,long)、实型(又称浮点型)(float和double)、字符型char、布尔型bool等,他们都可以用于定义常量和变量。
基本数据类型,也叫做基础类型,或内置类型。
1、整型(short,int,long)
整型量,包括短整型short、整型int、长整型long,而且3种类型都可以分别再细分为:有符号(signed)以及无符号(unsigned)。
2、实型(又称浮点型)(float和double)
实型,又称为浮点型,它包括两种数据类型:单精度浮点数float和双精度浮点数double。他们都是有符号数据类型。如果一个数值常量,包含小数点、指数部分(字符e),则为浮点数。
双精度浮点型,还可细分为双精度(double型)、长双精度(long double)
代码练习:
#include<iostream>
#define MAX 3.1415926 //宏定义
using namespace std;
int main()
{
const float PI=3.1415926; //定义数据类型为float类型的常量PI,其值为3.1415926
float a,b; //定义数据类型为float型的变量a,b。
a=1.8798786; //对变量a进行赋值
b=1.23; //对变量b进行赋值
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
cout<<"PI="<<PI<<endl;
cout<<"MAX="<<MAX<<endl;
return 0;
}
运行结果:
a=1.87988
b=1.23
PI=3.14159
MAX=3.14159
注意:
VC 6.0编译器提醒3个警告,truncation from 'const double' to 'const float',数据类型隐式转换。
例子中第6、8、9行的警告,VC 6.0编译器自动进行数据类型隐式转换,自动转换成float保留小数点后5位有效数字,并且四舍五入。
宏定义不会替代" "双引号里面的。VC 6.0编译器也会自动把宏定义的数值保留小数点后5位有效数字,并且四舍五入(如遇到末尾是0不输出,例如如果遇到3.14160,编译器会输出3.1416,已经编译执行测试)。
3、字符型char
字符型char类型定义的常量,必须要用单括号括起来。
例如:char ch='a' ; //把字符常量'a'存储到ch中。
字符型char类型量也可以细分为有符号(char)和无符号(unsigned char)。
字符型 char
双字符型 wchar_t
4、布尔型bool
布尔型的取值为true或者false。
布尔型变量的说明:例:bool flag;
则布尔型数据的变量flag取值:只有 false 和 true 两个值,即分别是0和1。
牢记False是0,true是1。
布尔型
布尔类型 bool (1字节)
代码练习:
#include<iostream>
int main()
{
bool abc=true;//布尔型可以表示两个逻辑值,1和0,即真或者假
//上面是把布尔值变量abc初始化为true。该语句等同于 "bool abc=1;"
if (abc==true) //小心容易打错字,是true不是ture!可以注意软件显示字体的颜色
{
std::cout<<"abc为真。\n";
}
return 0;
}
运行结果:
abc为真。
c++六种常用数据类型分别是:
布尔型 bool
整型 int
单精度浮点型 float
双精度浮点型 double
字符型 char
双字符型 wchar_t
整型数据类型代码练习:
#include<iostream>
using namespace std;
int add(int x, int y)
//int是c++的数据类型
//int 它表示整数,或者说是整型。
{
return x+y;
}
int main()
{
int x=1,y=2;
cout<<add(x,y)<<endl;
return 0;
}
运行结果:
3
短整型变量代码练习:
#include <iostream>
using namespace std;
int main()
{
int x;//定义变量的类型,告诉计算机分配多少的空间。
short int a;//可以缩写为 short a;
long int b;//可以缩写为long d;
short c;
long d;
cout<<"short int:"<<sizeof(a)<<endl;//sizeof()的作用是告诉用户括号中的参数所占用的字节数
cout<<"short:"<<sizeof(c)<<endl;
cout<<"long:"<<sizeof(d)<<endl; //也可以写 sizeof(int); sizeof(long);等
unsigned short e;
cout<<"unsigned short:"<<sizeof(e)<<endl;
signed long f;
cout<<"signed long:"<<sizeof(f)<<endl;
return 0;
}
运行结果:
short int:2
short:2
long:4
unsigned short:2
signed long:4
例子中定义的变量均没有正式使用,编译器会提醒:warning C4101: unreferenced local variable
C++规定变量必须“先定义、后使用”,如果我们定义了变量而没有使用,编译器就会提醒warning C4101: unreferenced local variable。
其中sizeof()的作用是告诉用户括号中的参数所占用的字节数。
用法例如:sizeof(a),sizeof(int)
构造数据类型
有些比较复杂的数据,单纯用基本数据类型未能表示,在C++中程序员可以用基本数据类型来自定义构造出新的数据类型,称构造数据类型,也称作构造类型、构造数据类型。
构造数据类型除了可以用常见的如int、float和double、char、bool等基本数据类型进行构造,也可以包含其他构造类型的数据。
构造数据类型包括:数组类型、枚举类型enum、指针类型、引用类型、结构体struct、联合体union(又称联合,共用体)、类class等,他们可以通过其他的数据类型进行构造,由程序员自定义,又称为自定义数据类型。