当前位置: 首页 > news >正文

网站定制公司选哪家怎么自建设部网站查询公司资质

网站定制公司选哪家,怎么自建设部网站查询公司资质,线上推广平台都有哪些,深圳手机端网站建设设计公司文章目录 1. C语言中的类型转换2. C中的类型转换2.1 static_cast2.2 reinterpret_cast2.3 const_cast2.4 dynamic 1. C语言中的类型转换 在C语言中#xff0c;经常会出现一种情况#xff1a;运算符两边的类型不同#xff0c;或者形参实参类型不匹配#xff0c;此时就会发生… 文章目录 1. C语言中的类型转换2. C中的类型转换2.1 static_cast2.2 reinterpret_cast2.3 const_cast2.4 dynamic 1. C语言中的类型转换 在C语言中经常会出现一种情况运算符两边的类型不同或者形参实参类型不匹配此时就会发生类型转化。在C语言中类型转化分为两种隐式类型转换和显式类型转换。 隐式类型转换编译器在变异阶段自动进行如果能转换就自动转换不能就报错显示类型转换用户自己处理 void test1() {int i 1;// 隐式类型转换double d i;printf(%d, %.2f\n , i, d);int* p i;// 显示的强制类型转换int address (int)p;printf(%x, %d\n , p, address); }隐式类型转化有些情况下可能会出问题: 比如数据精度丢失显式类型转换将所有情况混合在一起代码不够清晰 2. C中的类型转换 由于C语言的类型转换的缺陷C为了加强类型转换的可视性引入了四种命名的强制类型转换操作符static_cast、reinterpret_cast、 const_cast、 dynamic_cast 2.1 static_cast static_cast用于非多态类型的转换(静态转换)编译器隐式执行的任何类型转换都可用static_cast但它不能用于两个不相关的类型进行转换 用法static_casttypename(variablename)其中typename是将要转换的类型variablename是要被转换的变量。 void test1() {double d 12.34;int a static_castint(d);int b d;cout a b endl; }总结static_cast对标C语言类型转换的隐式类型转换要求两个类型必须要相关 2.2 reinterpret_cast reinterpret_cast操作符通常为操作数的位模式提供较低层次的重新解释用于将一种类型转换 为另一种不同的类型 void test2() {int a 12;//int* p static_castint*(a);//这里使用static_cast就会报错int* p reinterpret_castint*(a);cout p endl; }总结reinterpret_cast对标的是C语言的强制类型转换不要求两个类型是相关类型 2.3 const_cast const_cast最常用的用途就是删除变量的const属性方便赋值 void test3() {const int a 10;//a 20;//这里由于a是const修饰的变量所以不能修改int* p const_castint*(a);*p 20;cout a *p endl; }拓展知识如果运行上述的test3代码就会发现打印出来的a和*p的值并不一样这是什么原因呢 这是因为对于const修饰的变量编译器会认为它不会被修改所以会存放在一个寄存器内部每次访问的时候直接访问寄存器内部的值所以不会更改。如果想要让他每次都从内存中访问的话需要加上volatile关键字。 2.4 dynamic dynamic_cast用于将一个父类对象的指针/引用转换为子类对象的指针或引用(动态转换) 这里补充一下向上转换和向下转换的概念 向上转换由子类对象/指针/引用向父类对象/指针/引用的转换 向下转换由父类对象/指针/引用向子类对象/指针/引用的转换 其中向上转换是天然被允许的中间没有类型转换也不会产生临时对象但是向下转换可能会出现数组越界之类的问题因此是不安全的 class A { public:virtual void f() {}int _a 1; }; class B : public A { public:void f() {}int _b 2; }; void func(A* ptr) {B* bptr (B*)ptr;cout bptr-_b endl;cout bptr-_a endl; } void test4() {A aa;B bb;func(aa);func(bb); }这里对于A类型的对象如果要访问_b成员就会出现越界访问的问题。 而dynamic_cast 的作用就是将一个父类对象的指针/引用转换为子类对象的指针或引用 (向下转型)。需要注意的是 dynamic_cast只能用于父类含有虚函数的类。dynamic_cast会检查是否能转换成功能则进行转换不能则返回nullptr。 void func(A* ptr) {//B* bptr (B*)ptr;B* bptr dynamic_castB*(ptr);if(bptr nullptr){cout 类型转换错误出现向下转换 endl;return;}cout bptr-_b endl;cout bptr-_a endl; }注意一般情况下我们应该避免使用强制类型转换因为强制类型转换关闭或挂起了正常的类型检查所以每次在使用强制类型转换前程序员应该仔细考虑是否还有其他不同的方法达到同一目的如果非强制类型转换不可则应限制强制转换值的作用域以减少发生错误的机会。 本节完…
http://www.sczhlp.com/news/196119/

相关文章:

  • 高端建设网站企业网站页面怎么设计
  • 电商网站开发实例做初级会计实务题的网站
  • 做淘宝客网站详细步骤站长 网站ip
  • 东莞网站设计公司淘宝wordpress知识付费插件
  • 怎么做网站何做网站博海博海网站建设
  • 企业网站建设流程百科网络营销的职能
  • 洛阳网站改版维护公司凡科送审平台官网
  • 江苏省建设厅网站建造师强制注销html5炫酷网站
  • 网站图片alt属性设置网站和后台建设
  • 企业手机网站建设新闻群辉搭wordpress
  • 举报网站建设运行汇报网站制作目的
  • 网络公司做的网站根目录在哪商城网站建设可以吗
  • 怎么seo网站排名h5开发环境
  • 2018爱情动做网站网站域名年龄查询
  • 贵州建设厅网站怎样查询电工证河北手机网站制作多少钱
  • 网站动态效果用什么软件做的有什么做衣服的网站吗
  • 织梦网站密码忘记了北京seo公司助力网络营销
  • 贷款网站开发做调查的网站推荐
  • 什么是网站接入商企业网站开发需要多钱
  • 广州做手机网站建设找个网站懂的网站
  • 企业网站推广技术网站组成元素
  • 创建一个网站的步骤是网站开发角色分配权限
  • 银行网站 设计方案wordpress给模板添加title
  • 电影网站制作ftp 上传 wordpress
  • 合肥网站设计服家居企业网站建设公司
  • seo论坛站长交流wordpress 模板框架
  • 上传商品的网站wordpress怎么把分类弄在左边
  • 江苏华柯建设发展有限公司网站用cms做单页网站怎么做
  • 泉港区住房和城乡规划建设局网站优惠活动制作网站
  • 网站管理员怎么做联系方式如何写一个微信小程序