C++变量:
1)基础类型
C++ 为程序员提供了种类丰富的内置数据类型和用户自定义的数据类型。
下表是七种基本的 C++ 数据类型
类型 | 关键字 |
---|---|
布尔型 | bool |
字符型 | char |
整型 | int |
浮点型 | float |
双浮点型 | double |
无类型 | void |
宽字符型 | wchar_t |
一些基本类型可以使用一个或多个类型修饰符进行修饰
- signed(带符号类型) 表示正数、负数、0;
- unsigned(无符号类型) 表示大于0;
- short (短类型)
- long (长类型)
下表列出了各种变量类型在存储值时需要占用的内存,以及该类型的变量所能存储的最大值和最小值
类型 | 长度 | 范围 |
---|---|---|
char | 1 个字节 | -128 到 127 或者 0 到 255 |
unsigned char | 1 个字节 | 0 到 255 |
signed char | 1 个字节 | -128 到 127 |
int | 4 个字节 | -2147483648 到 2147483647 |
unsigned int | 4 个字节 | 0 到 4294967295 |
signed int | 4 个字节 | -2147483648 到 2147483647 |
short int | 2 个字节 | -32768 到 32767 |
unsigned short int | 2 个字节 | 0 到 65,535 |
signed short int | 2 个字节 | -32768 到 32767 |
long int | 8 个字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
signed long int | 8 个字节 | -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 |
unsigned long int | 8 个字节 | 0 to 18,446,744,073,709,551,615 |
float | 4 个字节 | +/- 3.4e +/- 38 (~7 个数字) |
double | 8 个字节 | +/- 1.7e +/- 308 (~15 个数字) |
long double | 8 个字节 | +/- 1.7e +/- 308 (~15 个数字) |
wchar_t | 2 或 4 个字节 | 1 个宽字符 |
这里注意事项:
1、double和float类型赋予int类型,数据会缺省小数点后的数据
2、char类型大小最小是为1,'\0',也就是我们常说的空字符。字符定义单引号char a = ‘’;字符串双引号char a = “”;
3.声明变量和定义变量是两个概念,声明放在前面,定义放在后面(函数形参反过来会报错)。
4.小心变量的作用域,Tios:全局变量和局部变量。
部分实例:
#include <iostream>
using namespace std;
int main()
{
cout << "Size of char : " << sizeof(char) << endl;
cout << "Size of int : " << sizeof(int) << endl;
cout << "Size of short int : " << sizeof(short int) << endl;
cout << "Size of long int : " << sizeof(long int) << endl;
cout << "Size of float : " << sizeof(float) << endl;
cout << "Size of double : " << sizeof(double) << endl;
cout << "Size of wchar_t : " << sizeof(wchar_t) << endl;
return 0;
}
Size of char : 1
Size of int : 4
Size of short int : 2
Size of long int : 8
Size of float : 4
Size of double : 8
Size of wchar_t : 4
2)定义新的类型 (起别名)
语法:typedef type newname;
举例:typedef int MY_INT; //意思int类型可以用MY_INT是代替即 int a == MY_INT a;当然也可以
struct pos{
int x;
int y;
}pos1;//pos1他是个变量,类型是pos,可以直接pos1.x
typedef struct pos{
int x;
int y;
}pos1;//pos1的变量类型是struct pos