zoukankan      html  css  js  c++  java
  • static_cast,const_cast,reinterpret_cast,dynamic_cast详解

    static_cast,const_cast,reinterpret_cast,dynamic_cast详解
    #include<iostream>

    //c++的数据类型转换:static_cast<需要转换的数据类型>(要转换的数据),
    //用于一般的数据类型转换
    void main1(){
            int n = static_cast<int >(78.98);
            int* p = static_cast<int *>(malloc(100));
            std::cin.get();
    }

    //const_cast:强制去掉const属性
    void main2(){
            int num[3] = { 12, 2, 3 };
            const int *p1 = num;
            //*p1 = 23;  wrong
            int *pnew = const_cast<int *>(p1);//去掉const属性
            *pnew = 46; //correct
            std::cin.get();
    }

    //reinterpret_cast:在地址和指针之间转换指针类型
    void main3(){
            //类型决定了数据的解析方式,以及内存占多大
            float f1 = 234.423;
            int num = 3;
            char *p = reinterpret_cast<char *>(&num);
            for ( int i = 0; i < 4; i++)
            {
                  std::cout << p[i] << std::endl;
            }
            std::cin.get();
    }

    //dynamic_cast:类的指针之间的转换
    void main(){
            std::cin.get();
    }
      





  • 相关阅读:
    Ida动态修改android程序的内存数据和寄存器数值,绕过so文件的判断语句
    Ida双开定位android so文件
    IDA调试android so文件.init_array和JNI_OnLoad
    超EASY 五步实现Eclipse ASN.1 SDK和插件安装
    记录重装系统的艰苦奋斗历程
    音标
    有道建昆老师~Reading Comprehensive
    Linux之普通用户用sudo建立文件和root用户建立的区别
    名句
    20200307(13)
  • 原文地址:https://www.cnblogs.com/ZhangJinkun/p/4531447.html
Copyright © 2011-2022 走看看