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

怎样做网站设计要交税吗wordpress标签不被收录

怎样做网站设计要交税吗,wordpress标签不被收录,用discuz做行业网站,广州建站招聘目录 左值和右值左值引用右值引用 参考《现代C语言核心特性解析》 以下加粗文字都是摘自本书。 左值和右值 左值和右值得概念在C98就出现了#xff0c;根据字面意思理解就是#xff1a;左值是表达式等号左边的值#xff0c;右值是表达式等号右边的值。 int x 1; int y … 目录 左值和右值左值引用右值引用 参考《现代C语言核心特性解析》 以下加粗文字都是摘自本书。 左值和右值 左值和右值得概念在C98就出现了根据字面意思理解就是左值是表达式等号左边的值右值是表达式等号右边的值。 int x 1; int y 3; int z x y;其中x、y和z是左值1、3、x y的值是右值。 但是用这种方式去判断太过简单而且不准确例如 int b a;其中a是左值不是右值。 摘自《现代C语言核心特性解析》在C中所谓的左值一般是指一个指向特定内存的具有名称的值具名对象它有一个相对稳定的内存地址并且有一段较长的生命周期。而右值则是不指向稳定内存地址的匿名值不具名对象它的生命周期很短通常是暂时性的。基于这一特征我们可以用取地址符来判断左值和右值能取到内存地址的值为左值否则为右值。还是以上面的代码为例因为a和b都是符合语法规则的所以a和b都是左值而1在GCC中会给出“lvalue required as unary ‘’ operand”错误信息以提示程序员运算符需要的是一个左值。 总结能取到内存地址的值是左值否则为右值。 但有时候通过直觉去判断是不准确的比如 int x 1;int get_val() {return x; }void set_val(int val) {x val; }int main() {x;x;int y get_val();set_val(6); }在上面的代码中x是一个右值x是一个左值。因为对于后置编译器会生成一份x的临时复制然后才对x自增返回临时复制的内容所以后置是右值。 int a x; // 编译失败 int a x; // 编译成功对于get_val函数x作为全局变量是一个左值但在返回x值时编译器会产生一份x的临时复制还是右值。 int a get_val(); // 编译失败对于set_val函数set_val(6)中的6是一个右值但是进入函数之后val变成一个左值所以可以对val取地址。 void set_val(int val) {int a val; // 编译成功x val; }还需要强调一点通常字面常量都是右值但是字符串常量除外。 int x 1; // 编译失败 auto p hello world // 编译成功毕竟hello world的语法也很少看到。但是这段代码是可以编译成功的其实原因仔细想来也很简单编译器会将字符串字面量存储到程序的数据段中程序加载的时候也会为其开辟内存空间所以我们可以使用取地址符来获取字符串字面量的内存地址。 左值引用 左值引用的出现使C编程脱离了使用指针的危险当我们需要将一个对象作为函数的参数时会使用左值引用这种方式会免去创建临时对象的操作。 左值引用细分可以分为非常量左值引用和常量左值引用。 非常量左值只能引用左值不能引用右值。 常量左值可以引用左值也可以引用右值。 int a 1; // 编译失败int x 1;const int b 1; // 常量左值引用右值const int c x; // 常量左值引用左值请注意虽然在结果上const int x 11和const int x 11是一样的但是从语法上来说前者是被引用了所以语句结束后11的生命周期被延长而后者当语句结束后右值11应该被销毁。虽然常量左值引用可以引用右值的这个特性在赋值表达式中看不出什么实用价值但是在函数形参列表中却有着巨大的作用。一个典型的例子就是复制构造函数和复制赋值运算符函数通常情况下我们实现的这两个函数的形参都是一个常量左值引用例如 #include iostreamclass MyClass { public:MyClass(){}MyClass(const MyClass){}MyClass operator(const MyClass){return *this;} };MyClass MakeMyClass() {return MyClass(); }int main() {MyClass x1;MyClass x2(x1);MyClass x3(MakeMyClass());x3 MakeMyClass();system(pause);return 0; }以上代码可以通过编译但是如果把拷贝构造函数和赋值构造函数形参的常量性去掉就编译不过了。因为非常量左值无法引用MakeMyClass()返回的右值所以常量左值引用右值是一条非常棒的特性但是也有弊端。一旦使用了常量左值就不能在函数里去修改对象的内容强制类型转换除外所以在这种情况下诞生了右值引用。 右值引用 右值引用是一种引用右值且只能引用右值的方法。 左值引用是在类型后面加右值引用是在类型后面加。 int x 1;int a x; // 左值引用int k 2; // 右值引用右值引用最大的特点是延长了右值的生命周期。 举例 #include iostreamclass BigMemoryPool { public:BigMemoryPool(){std::cout 普通构造函数 std::endl;}~BigMemoryPool(){std::cout 析构函数 std::endl;}BigMemoryPool(const BigMemoryPool other){std::cout 拷贝构造函数 std::endl;}void show(){std::cout 调用函数 std::endl;} };BigMemoryPool Make() {BigMemoryPool resultA;return resultA; }int main() {BigMemoryPool my_pool Make();my_pool.show();return 0; }请注意用GCC编译以上代码需要加上命令行参数-fno-elide-constructors用于关闭函数返回值优化RVO。因为GCC的RVO优化会减少复制构造函数的调用不利于语言特性实验。 但是我用G编译命令行是 g -stdc11 -fno-elide-constructors main.cpp -o main以上代码会调用三次构造函数注释中的1、2、3会各调用一次构造函数。 输出结果 PS C:\Users\zhn\Desktop\新建文件夹 g -stdc11 -fno-elide-constructors main.cpp -o main PS C:\Users\zhn\Desktop\新建文件夹 ./main 普通构造函数 拷贝构造函数 析构函数 拷贝构造函数 析构函数 调用函数 析构函数如果我们将3“改为 BigMemoryPool my_pool Make();会调用两次构造函数第一次是Make函数中resultA的默认构造第二次是return resultA引发的复制构造。不同的是由于x2是一个右值引用引用的对象是函数Make返回的临时对象因此该临时对象的生命周期得到延长所以我们可以在BigMemoryPool my_pool Make();语句结束后继续调用show函数而不会发生任何问题。 输出结果 PS C:\Users\zhn\Desktop\新建文件夹 g -stdc11 -fno-elide-constructors main.cpp -o main PS C:\Users\zhn\Desktop\新建文件夹 ./main 普通构造函数 拷贝构造函数 析构函数 调用函数 析构函数对性能敏感的读者应该注意到了延长临时对象生命周期并不是这里右值引用的最终目标其真实目标应该是减少对象复制提升程序性能。
http://www.yutouwan.com/news/463744/

相关文章:

  • 西安网站公司哪家好网站建设订流量什么意思
  • 郑州网站制作计划深圳哪家网站建设的公司好
  • 网站推广策略与问题分析商务网站管理的主要内容数据管理
  • 徐州网站建设网络推广几何印花图案设计网站
  • 郑州网站建设开发网站毕业设计任务书
  • 网站建设义乌wap网站预览
  • 家具网站开发报告王烨乐清
  • 广州seo网站公司dw中网站建设的基本流程
  • 达州大亚网站建设校园网站集群建设
  • 无锡市建设招标网站做网站没什么用啊老师别人强
  • 网站详情页用什么软件做哪个网站上做ppt比较好看的
  • 营销网站制作都选ls15227网站作品欣赏
  • 正规的网站制作联系方式先备案还是先做网站
  • 金诚财富网站是谁做的用python做网站后端最快多久
  • 做初中物理题目的网站国外优秀vi设计网站
  • 网站名称怎么填写wordpress图片缩略图不显示
  • 2013年建设工程发布网站潍坊住房公积金官网登录
  • 网站建设培训ppt杭州网站建设优化推广
  • 汶上1500元网站建设下载百度网盘app最新版
  • 短网址生成站长工具网站空间容量
  • 举报企业网站用个人信息备案品牌网站建设只詢大蝌蚪
  • 怎么做淘宝客的跳转网站东莞最新招聘
  • 微信商城软件开发宁波优化网站排名价格表
  • 构建一个商务网站的步骤有哪些医疗网站如何做优化
  • wordpress首页静态网站优化做网站优化
  • 做网站写需求怎么促成客户做网站
  • 建设一个手机网站首页广告东莞网站建设技术支持
  • 什么是网站主题优化建设网站的工作职责
  • 大同市网站建设网站首页制作模板
  • 织梦更新网站地图怎么样才能开网店