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

做宠物网站心得微信客户端登录入口

做宠物网站心得,微信客户端登录入口,有没有教做帽子的网站,企业微信app文章目录 一、const 关键字简介1、const 修饰普通数据2、const 修饰指针 ( 左数右指原则 | 指针常量 | 常量指针 ) 二、常量和非常量 之间的类型转换 - 常量类型转换 const_cast1、常量类型转换 const_cast2、常量不能直接修改3、修改常量值的方法4、特别注意 - 确保指针指向的… 文章目录 一、const 关键字简介1、const 修饰普通数据2、const 修饰指针 ( 左数右指原则 | 指针常量 | 常量指针 ) 二、常量和非常量 之间的类型转换 - 常量类型转换 const_cast1、常量类型转换 const_cast2、常量不能直接修改3、修改常量值的方法4、特别注意 - 确保指针指向的空间可修改 在之前写过一篇 C 类型转换的博客 【C 语言】类型转换 ( 转换操作符 | const_cast | static_cast | dynamic_cast | reinterpret_cast | 字符串转换 ) , 简单介绍了 C 类型转换 ; 在 博客 【C】类型转换 ① ( C 中的类型转换 | C 类型转换操作符 | const_cast | static_cast | dynamic_cast | reinterpret_cast ) 将 C 语言 和 C 中的类型转换进行了对比 ; 在 博客 【C】类型转换 ② ( C 静态类型转换 static_cast | C 语言隐式转换弊端 | 代码示例 ) 中 , 主要分析了 静态类型转换 static_cast , 可以解决 C 语言隐式转换的弊端 ; 在博客 【C】类型转换 ③ ( 重新解释类型转换 reinterpret_cast | 指针类型数据转换 ) 分析了 指针数据类型的转换 , 在 C 语言环境下 , 可以使用显示强制类型转换 , 在 C 环境中只能使用 重新解释类型转换 reinterpret_cast ; 在博客 【C】类型转换 ④ ( 子类 和 父类 之间的类型转换 - 动态类型转换 dynamic_cast ) 中 , 分析 C 环境下 使用 各种方式 进行 父类 和 子类 类型之间的转换 , 推荐使用 动态类型转换 dynamic_cast ; 本博客中 , 介绍 常量和非常量 之间的类型转换 , C 中推荐使用 常量类型转换 const_cast ; 一、const 关键字简介 1、const 修饰普通数据 普通类型数据的常量定义时 , const 关键字 在 数据类型 的 左边 和 右边 其作用 是相同的 ; // 下面两种 const 用法效果相同// 定义普通类型 ( 非指针类型 ) 的常量 const 在 类型左右 都是相同的const int a 10;int const b 20;2、const 修饰指针 ( 左数右指原则 | 指针常量 | 常量指针 ) 左数右指原则 : 指针 或 数据 的相关常量类型 ; const 在 * 左边 ( 常量指针 | const 修饰的是数据 | 数据是常量不能修改 ) : 如果 const 修饰的是 指针变量 指向的内存空间 , 如 const char *c , const 修饰的是 char , char 数据不能被修改 , 这是 常量指针 , 指向常量的指针 ; const 关键字在 指针符号 * 左侧 表示该定义的事 常量指针 ( 指向的内存数据不能修改 ) // 左数右指 : const 在指针左边 数据是常量 , const 在指针右边 指针是常量// 下面两种情况 const 在指针左边 , 数据是常量 , 内存中的数据不能修改// 但是 , c 和 d 指针的指向可以修改// 下面两种情况是相同的const int* c;int const* d;const 在 * 右边 ( 指针常量 | const 修饰的是指针 | 指针是常量不能修改 ) : 如果 const 修饰的是 指针变量 , 如 char * const d , const 修饰的是 char * , 指针不能被修改 ; 这是 指针常量 ; const 关键字在 指针符号 * 右侧是 表示定义的事指针常量 ( 指针本身不能被修改 ) ; // 左数右指 : const 在指针左边 数据是常量 , const 在指针右边 指针是常量// 下面的情况 const 在指针右边 , 指针是常量 , 指针地址不能修改 // 但是 , 指针指向的内存中的数据可以修改int* const e (int*)malloc(10);二、常量和非常量 之间的类型转换 - 常量类型转换 const_cast 1、常量类型转换 const_cast const 关键字 既可以修饰 指针 , 又可以修饰 普通类型数据 ; const 修饰 指针 , 遵循左数右指原则 , const 在 * 左侧 数据是常量 不能修改 ( 常量指针 ) , const 在 * 右侧 指针是常量 不能修改 ( 指针常量 ) ;const 修饰的普通常量 , const 在数据类型的左右两侧都可以 ; 常量类型转换 const_cast 可以 将 常量类型 转为 变量类型 , 以及 将 变量类型 转为 常量类型 ; 常量类型转换 const_cast 最大的作用就是 去掉 只读属性 ; 2、常量不能直接修改 函数接收一个 常量字符串 , const char * p 表示修饰的数据是常量 , 指针指向的 字符串 数据不可更改 ; // const char * p 表示修饰的数据是常量 , 数据不可更改 void fun(const char * p) {// 直接修改 const char * p 的数据内容会报错p[0] A; }上述函数在编译时 , 就会报错 : error C3892: “p”: 不能给常量赋值 ; 已启动生成… 1------ 已启动生成: 项目: HelloWorld, 配置: Debug Win32 ------ 1Test.cpp 1D:\002_Project\006_Visual_Studio\HelloWorld\HelloWorld\Test.cpp(8,5): error C3892: “p”: 不能给常量赋值 1已完成生成项目“HelloWorld.vcxproj”的操作 - 失败。生成: 成功 0 个失败 1 个最新 0 个跳过 0 个 3、修改常量值的方法 如果想要在函数中 , 修改常量值 , 可以使用 常量类型转换 const_cast , 先将 常量 转为变量 , 然后再进行修改 ; 在下面的代码中 , const char * p 表示修饰的数据是常量 , 数据不可更改 ; 如果想要修改 常量指针 指向的内存中的数据 , 要使用 常量类型转换 const_cast , 将 常量指针 改为 变量指针 , 取消 指针指向的 内存空间 的 只读属性 , char* tmp const_castchar*(str) ; 然后可以借助 转换成 变量指针 的 tmp 指针 , 改变指针指向内存中的数据 ; // const char * p 表示修饰的数据是常量 , 数据不可更改 void fun(const char * str) {cout 函数开始 : str endl;// 直接修改 const char * p 的数据内容会报错// 报错 : error C3892: “p”: 不能给常量赋值//p[0] A;char* tmp const_castchar*(str);tmp[0] A;cout 函数结束 : str endl; }完整代码示例 : #include iostream using namespace std;// const char * p 表示修饰的数据是常量 , 数据不可更改 void fun(const char * str) {cout 函数开始 : str endl;// 直接修改 const char * p 的数据内容会报错// 报错 : error C3892: “p”: 不能给常量赋值//p[0] A;char* tmp const_castchar*(str);tmp[0] A;cout 函数结束 : str endl; }int main() {char str[] Tom;fun(str);cout 程序结束 : str endl;// 控制台暂停 , 按任意键继续向后执行system(pause);return 0; };执行结果 : 函数开始 : Tom 函数结束 : Aom 程序结束 : Aom Press any key to continue . . . 4、特别注意 - 确保指针指向的空间可修改 使用 常量类型转换 const_cast 时 , 开发者必须确保 指针指向 的空间是可以修改的 , 如果不能修改 , 强行修改 , 会带来未知灾难性的后果 ; 如 : 定义了 字符串常量 , 字符串常量 不会分配内存 , 而是 存储在了 符号表 中 ; // 此处直接定义了一个常量字符串// 该常量字符串没有分配内存// 该常量存储在了 符号表 中const char * str Tom;可参考 【C】C 语言 和 C 语言中 const 关键字分析 ( const 关键字左数右指原则 | C 语言中常量的原理和缺陷 | C 语言中常量原理 - 符号表存储常量 ) 博客 , 在该博客中详细介绍了 C 语言常量 和 C 常量的原理 , C 中的常量都是存储在符号表中 , 符号表中的值肯定是不能被修改的 ; 使用 常量类型转换 const_cast , 强行将 符号表中的 常量 转为变量 , 但是 一旦执行 修改操作 , 直接在运行时报错 ; 错误代码示例 : #include iostream using namespace std;// const char * p 表示修饰的数据是常量 , 数据不可更改 void fun(const char * str) {cout 函数开始 : str endl;// 直接修改 const char * p 的数据内容会报错// 报错 : error C3892: “p”: 不能给常量赋值//p[0] A;char* tmp const_castchar*(str);tmp[0] A;cout 函数结束 : str endl; }int main() {// 此处直接定义了一个常量字符串// 该常量字符串没有分配内存// 该常量存储在了 符号表 中const char * str Tom;fun(str);cout 程序结束 : str endl;// 控制台暂停 , 按任意键继续向后执行system(pause);return 0; };执行结果 : 修改 符号表常量 的那一行代码 , 引发了未知异常 ;
http://www.yutouwan.com/news/81455/

相关文章:

  • 山西推广型网站建设中餐网站模板
  • 网站引用优酷咨询公司工资一般多少
  • 网站建设进度控制铜川网络推广
  • 用别人备案域名做违法网站台州h5建站
  • 网页设计与网站建设主要内容校园网站建设先进
  • 备案不关闭网站怎么样哪儿有那种网站
  • 四川 优质高职建设网站erp网站建设
  • 网站建设需求方案pdf简历模板手机版填写免费
  • 网站弹出的对话框怎么做网站建设管理员工工资多少钱
  • 深圳建站公司 方网站中国传统文化网页设计
  • 岳麓 网站设计婚纱摄影的网站模板
  • 国外设计学院网站三、网站开发使用软件环境
  • 影视文化传媒公司网站建设wordpress语言切换插件
  • 深圳网页设计推广服务南通网站排名优化报价
  • 专做蓝领招聘网站有哪些酒吧网站设计
  • 做盗版影视网站网页设计教学视频免费
  • 高端网站设计杭州photoshop软件教学
  • 北京建设商业网站nike建设网站的目的
  • 郑州 网站建设有限公司在线生成app网站源码
  • 手机端网站开发页学校宣传策划方案
  • 视频网站会员系统怎么做wordpress eshop
  • 移动端网站生成器活动页面设计
  • 写作参考范文网站官方网站哪家做的最好
  • 内网网站模板广西住房和城乡建设厅培训中心网站首页
  • 工程信息价查询网站广告设计海报
  • 洛阳便宜网站建设报价石家庄网站推广软件
  • 招聘58同城找工作网站做优化必须要ftp吗
  • 怎么在网上注册自己的网站有没有做网站兼职
  • 请别人做网站注意事项营销网站的设计思路
  • 公司网站设计需要多少钱招生平台网站开发