const_cast的使用_c++课程学习

    #if 0
    const   char *p; //常量指针:只能改变指针的指向,不能通过指针改变值,常用来做形参
    char *const  p;  //指针常量:只能通过指针改变值,不能改变指针的指向
    const   int *const p; //常量指针常量 值和指针的指向都不能改变
    #endif

    int ivalue = 100;
    const   int *cpi = &ivalue;
    //*cpi = 200;   //不能通过指针改变值

    //第1种:将常量指针转换为非常量指针
    int *pi = const_cast<int *>(cpi);
    *pi = 200;
    cout << *pi <<endl;

    //第2种:将非常量指针转换为常量指针
    const int *cpi2 = const_cast<const int *>(pi);
     cout << *cpi2 <<endl;

     int *const intpc = &ivalue;
     int    value2;
     //intpc = &value2;   //error:不能改变指针常量的指向
     //ivalue = const_cast<int>(intpc);   //error: 不能将指针变量转换为一般变量

     const int  VALUE = 200;
     //int value3 = const_cast<int>(VALUE); //error: 不能将常量转换为一般变量
     //--------
     int    value4 = 300;
     //const int civ = const_cast<const int>(value4); //error: 不能将一般变量转换为常量
时间: 2024-11-01 21:57:56

const_cast的使用_c++课程学习的相关文章

引用的使用_c++课程学习

int value = 100; int *pv = &value; //此时&是取地址操作符 //引用的绑定关系是终身制的 所引用的变量消失,引用也消失 int &intref = value; // 1.此时&是类型说明符:说明变量intref是引用 //int &intref2; // error: 2.申明引用时必须初始化 float f = 3.14f; //int &intref3 = f; //error: 引用的类型必须与所引用的变量的类型相

std申明的三种方法_C++课程学习

1 int main() 2 { 3 #if 0 //第1种:直接使用 4 std::cout<<"hello world"<<std::endl; 5 #endif 6 7 #if 0 //第2种:先申明使用指定的内容 8 using std::cout; 9 using std::endl; 10 cout<<"hello world"<<endl; 11 #endif 12 13 #if 1 //第3种:申明使用

java入门经验分享——记面向对象先导课程学习感想

选择在暑期学习面向对象先导课程的初衷是为大二下学期面向对象课程做一些铺垫,接触入门java语言.在接触java的过程中,就编程语言的学习方法而言,我从刚入学时的手慌脚乱四处寻求帮助到现在慢慢养成了自己不断寻找困难解决方法的习惯,感觉自己的另一种自学能力--一种计算机工科的实践能力得到了培养,这种自学能力跟学习基础课程理论知识的感觉完全不同,这种需要在实践和动手中得到经验和知识的自学方法与以前理解现成抽象理论概念的自学方法可以说是完全不同了.作为一个偏好理论研究的理科女生,动手实践能力在此之前几乎

ACM课程学习总结

ACM课程学习总结报告 通过一个学期的ACM课程的学习,我学习了到了许多算法方面的知识,感受到了算法知识的精彩与博大,以及算法在解决问题时的巨大作用.此篇ACM课程学习总结报告将从以下方面展开: 学习ACM算法知识之前的具备的知识基础 学习过程及知识梳理 心得体会及收获 一,学习ACM算法知识之前具备的知识基础 在开始这一学期的课程之前,大一上学期及寒假期间我学习了C++标准库中的STL,了解了一些通用操作,各种类型的容器的特性,以及一些算法.关于算法,只学习了一些简单的遍历,递归.并未深入学习

软工作业(1)课程学习热身

个人简介: ①基本信息 姓名:王海涵 学号:1425052012 班级:信息管理与信息系统141班 兴趣爱好:摄影,编辑微信公众平台,旅游,游泳 ②个人编程能力: 之前的课程学习过C++和Java这两门计算机编程语言,使用过Microsoft Visual C++和MyEclipse写代码,虽然通过了计算机二级以及三级考试,但是自己的基 础还是较薄弱,所写代码局限于课本和辅导书,没有开发过程序,需要进一步的学习,能力有待加强. 个人码云: 注册经过: ①首先打开老师给的码云地址http://gi

Clustered Data ONTAP Fundamentals课程学习(1)

Clustered Data ONTAP Fundamentals课程学习(绪论) NetApp LearningCenter Clustered Data ONTAP Fundamental课程主要介绍了Clustered Data ONTAP系统的优势,通过学习可以了解Clustered Data ONTAP系统的架构和功能,掌握基本的管理操作,包括:安装.配置和管理. 通过学习这门课程,可以掌握以下的技能: (1)认识Clustered Data ONTAP的主要优势: (2)熟悉Clus

慕课网课程学习--JS事件探秘

事件流 事件冒泡(IE):事件最先被最具体的元素(文档中嵌套层次最深的节点)接受,然后逐级向上传播至最不具体的节点(.. -> body ->html -> document): 事件捕获(网景):不具体的节点更早接收到事件,最具体的节点最后接收到事件,和事件冒泡相反. 事件处理程序 1.HTML事件处理程序 原理:把事件直接在HTML结构中的HTML元素上. 方法一. <input type="button" value="click" o

Github课程学习笔记

Github课程学习笔记 Github结构 分支——定位于指向一个版本的指针,对应版本的一串不同结构,互不干扰 版本——对应一个父版本以及父版本上的相应变动 变动——不同文件文本的删除.添加 浏览器使用 客户端使用 版本控制commit 修改文本产生变动 变动以行为单位 选中变动加入版本 undo将版本变回变动(没有上传才能用) 上传publish 同步至github之上 回滚rollback一步(一个commit)回到上分支上的一个父版本 抵消revert 抵消这个版本,删除版本上的变动(一个

打通前后端全栈开发node+vue进阶【课程学习系统项目实战详细讲解】(3):用户添加/修改/删除 vue表格组件 vue分页组件

第三章 建议学习时间8小时      总项目预计10章 学习方式:详细阅读,并手动实现相关代码(如果没有node和vue基础,请学习前面的vue和node基础博客[共10章] 演示地址:后台:demoback.lalalaweb.com  前台:demo.lalalaweb.com 演示过程中可能会发现bug,希望即时留言反馈,谢谢 源码下载:https://github.com/sutianbinde/classweb               //不是全部的代码,每次更新博客才更新代码 学