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

微信 公司网站 怎么做湖南网站建设网站制作

微信 公司网站 怎么做,湖南网站建设网站制作,wordpress首页文章数,小程序源码使用教程#x1f496;作者#xff1a;小树苗渴望变成参天大树#x1f388; #x1f389;作者宣言#xff1a;认真写好每一篇博客#x1f4a4; #x1f38a;作者gitee:gitee✨ #x1f49e;作者专栏#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法#x1f384; 如 果 你 … 作者小树苗渴望变成参天大树 作者宣言认真写好每一篇博客 作者gitee:gitee✨ 作者专栏C语言,数据结构初阶,Linux,C 动态规划算法 如 果 你 喜 欢 作 者 的 文 章 就 给 作 者 点 点 关 注 吧 文章目录 前言一、C语言的类型转换二、为什么C需要四种类型转换三、 C强制类型转换四、总结 前言 今天将一个知识量不是很大而且建议使用的东西相信大家看到类型转换的时候就觉得这不是C语言的时候就学了吗为什么现在拿出来提但又看到C的类型转换说明这是C新出来的大家都是知道C是兼容c语言的所以再C里面的类型转换再C里面也适用而今天将的是C里面的类型转换是为了规范C语言里面类型转换出现的不安全问题所以接下来我们就来进入正文进行讲解。 一、C语言的类型转换 在C语言中如果赋值运算符左右两侧类型不同或者形参与实参类型不匹配或者返回值类型与 接收返回值类型不一致时就需要发生类型转化C语言中总共有两种形式的类型转换隐式类型 转换和显式类型转换 显示类型转换 我们来看案例 int main() {//显示的类型转换//相关类型的显示类型转换int i 0;int* p i; int address (int)p;double b 1.1;//可能会造成精度丢失i (int)b;//不相关类型的显示类型转换vectorint v;string s;v (vectorint)s;return 0; }隐式类型转换 void insert(size_t pos, char ch) {int end 10;while (end pos)//会进行隐式类型转换将end类型转换成int,会死循环{cout end endl;//...--end;} }double b 1.1; i b;const变量也可以修改 const int n 10;//转换有安全隐患的int* p (int*)n;(*p);cout n endl;cout *p endl;大家看到从监视窗口看到的值和打印的值不一样原因就是监视窗口里面的值是内存里面里面的值而打印的时候没有直接去内存里面去拿值而是再寄存器的时候直接进行的替换我们可以使用一个关键字让他到内存里面取volatile 上面的办法就是让const去掉常性。 上面的几种场景我们发现都可能会出现问题而且每种转换可视性较差所以的转换都是相同的方式再前面加类型就可以看需要人自己来判断。 二、为什么C需要四种类型转换 C风格的转换格式很简单但是有不少缺点的 隐式类型转化有些情况下可能会出问题比如数据精度丢失显式类型转换将所有情况混合在一起代码不够清晰 因此C提出了自己的类型转化风格注意因为C要兼容C语言所以C中还可以使用C语言的转化风但是建议使用c11出来的风格。 三、 C强制类型转换 标准C为了加强类型转换的可视性引入了四种命名的强制类型转换操作符 static_cast、reinterpret_cast、const_cast、dynamic_cast 1static_cast用于非多态类型的转换静态转换编译器隐式执行的任何类型转换都可用 static_cast但它不能用于两个不相关的类型进行转换 double b 1.1; i static_castint(b); 这样就可以很好的知道这是隐式类型转换。 2reinterpret_cast操作符通常为操作数的位模式提供较低层次的重新解释用于将一种类型转换 为另一种不同的类型 double d 12.34;int a static_castint(d);cout a endl;// 这里使用static_cast会报错应该使用reinterpret_cast//int *p static_castint*(a);int *p reinterpret_castint*(a);3const_cast最常用的用途就是删除变量的const属性方便赋值 int* p const_cast int*(a );*p 3;couta endl;4dynamic_cast用于将一个父类对象的指针/引用转换为子类对象的指针或引用(动态转换) 向上转型子类对象指针/引用-父类指针/引用(不需要转换赋值兼容规则) 向下转型父类对象指针/引用-子类指针/引用(用dynamic_cast转型是安全的) dynamic_cast只能用于父类含有虚函数的类dynamic_cast会先检查是否能转换成功能成功则转换不能则返回0 这是指针c特有的c语言没有继承 我们来看一个例子 class a { public:virtual void f() {}int _x 0; };class b : public a { public:int _y 0; }; void fun(A* pa) {B* pb (B*)pa;pb-_x;pb-_y; }int main() {A aa;fun(aa);B bb;fun(bb);return 0; }我们再传参的时候形参接收实参的过程是向上转型没有问题但是函数体里面有一个将父类指针强转给子类指针第一中会报错原因是我们B*让pa的访问范围变大了本来就智能访问_x,现在可以访问_y,而A类里面没有_y就会报错这种错误我们是很难知道的所以需要使用 dynamic_cast void fun(A* pa) {//pa是指向子类对象B的转换可以成功正常返回地址// pa是指向父类对象A的转换失败返回空指针B* pb dynamic_castB*(pa);if (pb){cout 转换成功 endl;pb-_x;pb-_y;}else{cout 转换失败 endl;} }这样就很好的避免我们上面会出现到的问题了 注意 强制类型转换关闭或挂起了正常的类型检查每次使用强制类型转换前程序员应该仔细考虑是 否还有其他不同的方法达到同一目的如果非强制类型转换不可则应限制强制转换值的作用 域以减少发生错误的机会。强烈建议避免使用强制类型转换 四、总结 到这里面我们的类型转换就讲解完毕了大家再平时中试着慢慢使用这些对以后再开发中又帮助可以帮助我们减少很多不必要的麻烦这节的内容不难大家下来好好的去理解一下我么拿下篇介绍特殊类的设计。
http://www.w-s-a.com/news/823603/

相关文章:

  • 马云之前做的网站企业形象策划
  • ie9网站后台编辑器代发qq群发广告推广
  • 百度怎样建立一个网站嘉兴高端网站定制
  • 国外设计网站怎么进入电子网站建设前台设计
  • 中方建设局网站济南网站建设公司电子商务网站
  • 如何做网站编辑 沒技术济南企业做网站推广网站
  • 网站模板 百科北京中高风险地区最新名单最新
  • 高校网站建设前言做公众号的公司是什么公司
  • 网站备案怎么登陆短视频培训学校
  • 百度图片点击变网站是怎么做的北京市建设工程质量监督站网站
  • 在线建站模板重庆网站建设大概需要多少钱
  • 建设网站公司电话号码wordpress 即时通讯
  • 网站设计用的技术拓者吧室内设计网app
  • 河北seo优化_网络建设营销_网站推广服务 - 河北邢台seo网站建设运行情况报告
  • 建设银行内部网站6画册设计是什么
  • 网站建设什么价格网站下拉菜单怎么做
  • flash型网站微信公众号运营策划
  • 想建设个网站怎么赚钱国外学校网站设计
  • 网站设计网页设计系统没有安装wordpress
  • 建网站做哪方面公司百度官网优化
  • 山西网站seo网站采集信息怎么做
  • 同江佳木斯网站建设seo学徒培训
  • 淘宝不能发布网站源码做商品怀化网站制作建设
  • 买空间哪个网站好做我的世界背景图的网站
  • 南京哪里做网站wordpress 增加子目录
  • 刚做的网站搜全名查不到网站很难被百度收录
  • 网站建设与管理期末做网站买空间用共享ip
  • 网络合同怎么签有效南京seo公司哪家
  • 厦门建设网官方网站上海网络网站建
  • 网站制作西安郑州网站建设动态