C++数据类型
1,int 整型类型 就是整数 1000 200 49
short int 短整型
long int 长整型
long long int 更长整型
2,char 字符类型 字符 'a' '1' 'x'
ASCLL字符
A~Z 65~90 a~z 97~122 大写与小写之间相差 32
0~9 48~57 换行\n的值是 10 0~31 这32个字符是不可打印字符,无法在屏幕上打印
3,float 浮点类型 小数 小数点是可以动的 2.1 3.4 5.6 123.45=1.2345*10的2次方
float 单精度浮点型 float f=5.5f; 若只写5.5会被编译器识别为doubt类型
doubt 双精度浮点型 doubt=5.5;
long double 更长的双精度浮点型 long doubt ld=5.5;
1e5 科学计数法的形式,意思是1.0*10的5次方
1e5+10 1*100000+10=100010
1.23e5+10 1.23*100000+10=123010
4,布尔类型 bool
一种表示 真/假 的变量 一般0表示假 非0表示真
bool flag=true;
if (flag)
cout << "i like c++" << endl; 此代码可以在屏幕上面打印出来
bool flag=false;
if (flag)
cout << "i like c++" << endl; 此代码在屏幕上面打印不出来
int flag = 0;
cin >> flag;
if (flag)
cout << "i like c++"<< endl; 在屏幕上面输入0则无法显示这句话,输入非0数字则可以打印
5,signed与unsinged 放在 climits 的头文件中 climits中用的是<limits.h>
signed 有符号的
unsigned 无符号的 好处是 同样长度的内存能够表示的最大的整数值,增大了一倍
int num = signed int num 含义是相同的 int默认带有正负号
有正负号的时候选择 signed 0与正整数的时选择 unsigned
6,数据类型长度
整型有4种 short int long long long
浮点型3种 float double long double
sizeof操作符 专门用来计算特定数据类型长度的,单位是字节 操作的可以是类型也可以是变量或者表达式 sizeof的操作如果不是类型,是表达式的时候,可以省略掉后边的括号 sizeof(类型) sizeof 表达式
sizeof的计算结果是size_f 类型的,指的是无符号整数(该类型包含了所有可能的 unsigned int ,unsigned long,unsigned long long等类型,具体是取决于编译器的
7,typedef 类型重命名
语法 typedef 旧类型名 新类型名;
#include <iostream>
using namespace std;
typedef unsigned long long ull; 蓝色为旧类型名 红的为新命名
int main()
{
unsigned long long num1;
ull num2;
return 0;
}
8,变量
语法形式: data_type name;前面一个交代类型后面一个交代名字
#include <iostream>
using namespace std;
int main()
{
int (数据类型)num (变量名);
int age;
double weight;
unsigned int height;
return 0;
}
变量命名规则:变量名字只能由 字母,数字(不能以纯数字开头,也不能包含特殊字符 如:空格,连字符等),下划线组成,且必须以字母或下划线开头。变量名不能使用语言相关的关键字 如:char int if 等。避免使用过长的名称。变量名是区分大小写的。
变量的初始化:变量在创建的时候就给一个初始值,就叫初始
创建变量的同时给他一个值
int n;
n = 20; 这不算是初始化,是赋值操作
#include <iostream>
using namespace std;
int main()
{
int num = 10;
int age = 18;
double weight = 50;
unsigned int height = 168;
return 0;
}
局部变量 大括号内 全局变量 大括号外 局部变量优先
#include <iostream>
using namespace std;
int main()
{
int m = 1;
{
int a = 10;//局部变量
cout << ::m << endl; 在m前面加上::可以在局部变量优先的情况下访问全局变量
}
cout << m << endl;
return 0;
}
局部变量不初始化会导致编译器上的显示出现一些问题
#include <iostream>
using namespace std;
int main()
{
int a;
char c;
float f;
double d;
cout << "int" << a << endl;
cout << "char" << c << endl;
cout << "float" << f << endl;
cout << "double" << d << endl;
return 0;
}
全局变量 通常在定义是就被初始化,如果没有明确的初始化值,就会被默认为是0
9,常量常量是不能被改变的值
字面常量 , #define 定义的常量(语法形式 常量名 内容), const 定义的常量
10进制数字,如:6 ,17,22,123
8进制数字,一般以数字0开头,如:012,016
16进制数字,一般以数字0x开头,如:0x123,0xff
字符常量:‘a’
浮点型常量:3.14
#define类型的常量 这种类型的不关注类型,只关注常量的名字叫啥,常量的值是多少
#include <iostream>
using namespace std;
#define M 22; 在#define中的分号可以不用写,const中要写
#define ch 'x'
#define pi 3.1415926
int main ()
{
int m = M;
cout << m << endl;
cout << 22 << endl;
cout << 'x' << endl;
cout << 3.1415926 << endl;
return 0;
}
const类型 (语法形式 const 类型 常量名字 = 常量值;) 这种方式定义常量更常见
#include <iostream>
using namespace std;
int main ()
{
const int n = 10; 加上const后n的值就不会被改为20了,此时编译器上面会显示报错
n = 20; 加上const后将这个红的给删掉
cout << n << endl;
return 0;
}
#include <iostream>
using namespace std;
const double pi = 3.1415926;
int main ()
{
int r = 0;
cin >> r ;
cout << "周长" << 2*pi*r << endl;
cout << "面积" << pi*r*r << endl;
return 0;
}
10,算术运算
% 取摸操作符操作的数只能是整数,不能是浮点数
#include <iostream>
using namespace std;
int main ()
{
int a = 7-2;
cout << a << endl;
int b = 7+4;
cout << b << endl;
//错误的示范
float f = 4.0f;
int a = 2;
int d = f % a;
return 0;
}
负数取模 负数取模求结果的正负号由第一个运算数的正负号决定
#include <iostream>
using namespace std;
int main ()
{
cout << 11 % -5 << endl; //1
cout << -11 % -5 << endl; //-1
cout << -11 % -5 << endl; //-1
return 0;
}
11,数据转换
整型提升:在表达式中char和short类型一定会先转换成int类型,然后再参与运算
算数转换:在表达式中出现下面的任意两种类型的值进行计算的时候,要先将下面的转换成为另一种类型才能计算 long long double float unsigned long int long int unsigned int int
赋值类型转换:1,float 和 double 赋值给 int ,直接截断小数部分,保留整数部分。
2,较小的类型转换较大的类型,直接转换,值不变。
3,较大的类型转换为较小的类型,一般会发生截断,按照较小类型的长度,保留低位数据给较小的类型。
强制类型转换:也是临时转换,不影响变量本身的类型,语法形式为:(类型名) 表达式
#include <iostream>
using namespace std;
int main()
{
int a = 0;
a = (int)3.14; 强制型转换
return 0;
}
更多推荐



所有评论(0)