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

朋友做网站网站挣了好多钱wordpress给通知用户邮件

朋友做网站网站挣了好多钱,wordpress给通知用户邮件,网站建设大师,怎样在赶集微网站做微招聘信息const 和 #define 的区别 ? const 和指针一块出现的时候#xff0c;到底谁不能修改 #xff1f; const 和 volatile 能同时修饰一个变量吗 ? const 在 c 中的作用 ? 1 const 和 #define 的区别 const 和 #define 的相同点#xff1a; (1) 常数 const 和 #define 定…const 和 #define 的区别 ? const 和指针一块出现的时候到底谁不能修改 const 和 volatile 能同时修饰一个变量吗 ? const 在 c 中的作用 ? 1 const 和 #define 的区别 const 和 #define 的相同点 (1) 常数 const 和 #define 定义的对象我们都可以当做一个常数来使用。 const 和 #define 的区别 (1) 生命周期 #define 在编译预处理的时候会做字符串替换替换之后宏就不存在了也就是说宏的声明周期只存在于源码和预处理阶段。在目标文件中程序运行的时候宏是不存在的。 const 修饰的变量在编译阶段会做语法检查如果有显式修改会报编译错误。const 常量在运行时也是实际存在的存在于栈或者数据段中。 (2) 作用域 #define 定义的宏只要包含了这个头文件都可以使用这个宏在源文件中宏定义之后的代码也都可以访问这个宏即使宏定义函数内部那么这个宏定义后边的其它函数也是可以使用这个宏的。 const 修饰的局部变量只能在函数内访问const 修饰的全局变量和普通全局变量的作用域是相同的。 (3) #define 修饰的宏可以 redifine 如下代码在函数 test2() 内部对HOURS_PER_DAY 进行了重定义。重定义虽然是在函数内部但是对后边的函数都是生效的。在 test2() 中重定义在函数 test3() 中也是生效的。 #include stdlib.h #include stdio.h #include string.h#define HOURS_PER_DAY 24void test1() {printf(1, hours per day %d\n, HOURS_PER_DAY); }void test2() {#undef HOURS_PER_DAT#define HOURS_PER_DAY 20printf(2, hours per day %d\n, HOURS_PER_DAY); }void test3() {printf(3, hours per day %d\n, HOURS_PER_DAY); }int main() {test1();test2();test3();return 0; }在 c 编码规范中推荐使用 const 常量而不是 #define。 从上边的分析也可以看出来#define 是可以重定义的并且 #define 定义的宏没有作用域限制。这就可能给代码带来不安全性。 而对于 const 来说局部变量的作用域只是函数内全局 const 变量也不能重新修改。 const  的作用域限制更加严格所以使用 const 安全性会更高。 2 const 和指针一块出现的时候到底谁不能修改 const 修饰的是谁那么谁就不能修改。 int a 10; int * const pa1 a; // const 修饰的是 int * 类型是指针所以 pa1 不能修改*pa1 可以修改 const int *pa2 a; // const 修饰的是 int 类型所以 pa2 可以修改*pa2 不能修改 const int * const pa3 a; // pa3 和 *pa3 均不能修改 如下是代码和编译结果。 a 是 const 常量所以不能修改。 p1 中 const 修饰的是 int 常量所以 *p1 不能修改p1 可以修改。 p2 中 const 修饰的是指针所以 p2 不能修改*p2 可以修改。 p3 const 修饰了指针和 int 值所以 p3 不能修改*p3 也不能修改。 3 const 和 volatile 能不能修饰同一个变量 可以。 这两个关键字从字面意思上是有一些矛盾的。const 是说这个变量是常数不能修改volatile 又说这个变量是易变的。 但是两者可以修饰同一个变量侧重点并不矛盾。const 是提醒编译器这个变量是常数不能在代码中显式修改我们使用它的目的就是这样的不让在代码中显式修改volatile 说变量是易变的告诉编译器不要做访问优化每次访问的时候都要到内存中去取值。 在嵌入式开发中常常用到 volatile 来修饰寄存器变量寄存器变量不允许软件显式修改但是硬件可以修改。这个时候就可以使用 const 和 volatile 进行修饰。 4 const 在 c 中的作用 (1) 左值引用指向右值 如下代码 ra2 是左值引用左值引用不能直接指向一个右值。 ra3 是一个 const 左值引用可以指向一个右值。 从运行结果可以看出来const 左值引用可以指向右值右值也是保存在栈里的 ra3 的地址和 a 的地址挨着。 从运行结果可以看出来const 引用 ra3通过地址间接修改也是可以修改的。 #include iostream #include stringint main() {int a 10;int ra1 a;// int ra2 10; // error: cannot bind non-const lvalue reference of type ‘int’ to an rvalue of type ‘int’const int ra3 10;std::cout a addr a , ra3 addr ra3 std::endl;int *p (int *)ra3;std::cout ra3 ra3 std::endl;*p 100;std::cout ra3 ra3 std::endl;return 0; }(2) 修饰成员函数 用 const 修饰的成员函数在函数中不能修改类的成员变量。 #include iostream #include stringclass Test { public:Test() {a 10;std::cout Test() std::endl;}~Test() {std::cout ~Test() std::endl;}void Do() const {a 100;}void Do1(int data) {a 100;data 200;}int a; };int main() {Test t;t.Do();return 0; }5 参考 linux 下 c 语言中的局部 const 常量可以修改 [c 语言] 实例观察 c 语言中 volatile 的作用
http://www.pierceye.com/news/321742/

相关文章:

  • 濮阳seo网站建设商贸公司寮步网站建设
  • 百姓网网站建设如何在社交网站做销售
  • 网站微信认证费用介绍网络营销的短文
  • 北京微网站修改wordpress后台登陆
  • 网站建设管理工作情况报告企业在线
  • ps临摹网站营销型网站传统网站
  • 对电子商务网站建设和管理的理解学网站开发应该学什么软件
  • 建设网站的app英文成品网站模板下载
  • 破解版软件下载网站网站图片处理方案
  • 安徽网站建设方案服务汉中建设工程招标网
  • 网站建设公司企业模板下载阿里巴巴官网国际站
  • icp备案网站信息修改百度小说排行榜总榜
  • 崇明专业网站建设做网站后台要学什么
  • 专门做搜索种子的网站有哪些吉林平台网站建设多少钱
  • seo网站优化案例高端品牌裙子
  • 合肥需要做网站的公司无锡工程建设信息网站
  • 网站服务器有哪几种做招聘网站没有数据
  • 合肥手机网站制作建设自己做视频的网站
  • 公司网站备案名称广东建设项目备案公示网站
  • 网站建设设计维片长治网站建设公司
  • 商务网站建设兴田德润电话多少世界著名网站开发语言
  • 湖北网站建设公司微信手机网站设计
  • 徐州网站制作需要多少钱网站规划设计方案
  • 设计师常用网站门户重庆注册公司流程和费用标准
  • 网站图片太多怎么优化全民推广
  • 湖南做网站 e磐石网络做网站网站盈利会怎么样
  • 网站关闭流程保定风泉网络科技有限公司
  • 学做网站视频工作室网站需要备案吗
  • 个人网站 后台管理咸阳网站建设xymokj
  • 安阳淘宝网站建设保障性租赁住房管理平台