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;
}

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐