cpp(第五章)
1.副作用,指的是在计算表达式时对某些东西(如存储在变量的值)进行修改;顺序点,是程序执行过程中的一个点,在这里,进入下一步之前将确保对所有的副作用
都进行评估。(分号就是一个顺序点)。for example y= (4+ x++)+ (6+ x++),表达式4+ x++不是一个完整的表达式,因此c++不保证x的值在计算子表达式
4+ x++后立即增加1。换句话说c++没规定在计算每个子表达式之后将x的值递增还是在整个表达式计算完毕之后才将x的值递增。(在c++11文档中,不再使用术语
“顺序点”,因为这个概念难以用于讨论多线程执行。相反,使用了术语“顺序”它表示有些事件在其他事件前发生。这种描述方法并非要改变规则,而旨在更清晰地描述
多线程编程)。
2.前缀递增、前缀递减和解除引用运算符的优先级相同,从右到左;后缀递增和后缀递减优先级相同,但比前缀运算符的优先级高,从左到右。
3.
int quizscores[]={,,,,,,,,,};
cout<<"doing it right: "<<endl;
int n_i;
for (n_i= ; quizscores[n_i]== ; n_i++)
cout<<"quiz "<<n_i<<" is a 20"<<endl;
cout<<"doing it dangerously wrong: "<<endl;
for(n_i= ; quizscores[n_i]= ; n_i++)
cout<<"quiz "<<n_i<<" is a 20"<<endl;
首先是把“==”用作“=”导致程序无线循环,避免这种错误可能有多种吧,但目前我知道最有效的是养成数值放左边,变量放右边。20==quizscores[n_i],这样就算用错
编译器也会提醒错误。接着闲着无聊在该检查条件时候发现一个非常有趣的现象,在为检查条件赋值为0时,程序竟然从头反复输出了...(只能说明笔者太无知了),原因
当然是我在申请数组后接着申请n_i变量,它们内存是连着放,所以当越界的时候下一个int内存就是索引自己本身的空间。这算比较好的情况,最糟糕的是索引内存不是在
数组内存后面,该出现可能导致其他应用程序无法运行。
4.
#include <iostream>
int main()
{
using namespace std;
int n_i= ;
cout<<n_i++<<endl<<n_i++<<endl<<n_i;
return ;
}
#include <iostream>
inline int add(int &n)
{
n= n+;
return n-;
}
int main()
{
using namespace std;
int n_i= ;
cout<<add(n_i)<<endl<<add(n_i)<<endl<<n_i<<endl;
cout<<n_i<<endl;
return ;
}
首先,cout流操作是先从右到左放进缓冲中,然后再从左到右输出。最后输出结果是 1 0 2 (自增符,目前还搞不懂为什么是这个结果) ,第二个输出1 0 0 2
5.
int x_i= (,);
x_i= ,;
首先逗号运算符表达式最后的值为最右子表达式,=的优先级大于','运算符,所以第一次x_i= 20,第二次 x_i= 1;
cpp(第五章)的更多相关文章
- 第五章 体验Qt Creator的神奇魅力
第五章 体验Qt Creator的神奇魅力 Qt Creator是官方提供的一个轻量级IDE(集成开发环境),功能强大,是程序员快速开发程序的有力助手.下面我们用它实现一个helloworld工程. ...
- 深入理解 C 指针阅读笔记 -- 第五章
Chapter5.h #ifndef __CHAPTER_5_ #define __CHAPTER_5_ /*<深入理解C指针>学习笔记 -- 第五章*/ /*不应该改动的字符串就应该用 ...
- 《Django By Example》第五章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag注:大家好,我是新来的翻译, ...
- 《Entity Framework 6 Recipes》中文翻译系列 (22) -----第五章 加载实体和导航属性之延迟加载
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第五章 加载实体和导航属性 实体框架提供了非常棒的建模环境,它允许开发人员可视化地使 ...
- 精通Web Analytics 2.0 (7) 第五章:荣耀之钥:度量成功
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第五章:荣耀之钥:度量成功 我们的分析师常常得不到我们应得的喜欢,尊重和资金,因为我们没有充分地衡量一个黄金概念:成果.因为我们 ...
- 《Linux内核设计与实现》读书笔记 第五章 系统调用
第五章系统调用 系统调用是用户进程与内核进行交互的接口.为了保护系统稳定可靠,避免应用程序恣意忘形. 5.1与内核通信 系统调用在用户空间进程和硬件设备间添加了一个中间层, 作用:为用户空间提供了一种 ...
- Java语言程序设计(基础篇) 第五章 循环
第五章 循环 5.2 while循环 1.while循环的语法如下: while(循环继续条件){ //循环体 语句(组); } 2.程序:提示用户为两个个位数相加的问题给出答案 package co ...
- 读《编写可维护的JavaScript》第五章总结
第五章 UI层的松耦合 5.1 什么是松耦合 在Web开发中,用户界面是由三个彼此隔离又相互作用的层定义的: HTML是用来定义页面的数据和语义 CSS用来给页面添加样式 JavaScript用来给页 ...
- 《Linux内核设计与实现》课本第五章学习笔记——20135203齐岳
<Linux内核设计与实现>课本第五章学习笔记 By20135203齐岳 与内核通信 用户空间进程和硬件设备之间通过系统调用来交互,其主要作用有三个. 为用户空间提供了硬件的抽象接口. 保 ...
随机推荐
- HR最喜欢问的问题_"你的职业规划是什么?"
很多面试官都会问,“你的职业规划是什么?”这个问题往往会难倒很多求职者.今天我跟大家分享,求职者怎样回答,才能更给自己加分 1.对目前自己要从事的这个岗位有清晰的认识,比如这个主要的工作是做什么的,大 ...
- 读书笔记 effective c++ Item 53 关注编译器发出的警告
许多程序员常常忽略编译器发出的警告.毕竟,如果问题很严重,它才将会变成一个error,不是么?相对来说,这个想法可能在其它语言是无害的,但是在C++中,我敢打赌编译器的实现者对于对接下来会发生什么比你 ...
- PMBOK 学习与实践分享视频
本系列为自己在学习PMBOK时进行的总结与分享,每一节主要包括两部分: 对PMBOK本身的一个结构笔记和讲解. 对自己项目管理工作的一个总结和思考. PMBOK 学习与实践分享视频内容清单 人力资源管 ...
- 配置web.xml和glassfish容器实现javaEE表单验证
web.xml配置: <!-- 声明用于安全约束的角色 --> <security-role> <role-name>ReimUser</role-name& ...
- ArcGIS 网络分析[2] 利用自定义基础数据创建网络数据集
前言 似乎除了官方介绍的例子,我还没有在网上见过一篇介绍如何"使用自己的数据"创建"网络数据集"的文章. 有介绍几何网络的,有介绍如何用官方SanFrancis ...
- ECMAScript6 规范
本文探讨如何将ES6的新语法,运用到编码实践之中,与传统的JavaScript语法结合在一起,写出合理的.易于阅读和维护的代码. 多家公司和组织已经公开了它们的风格规范,具体可参阅http://jsc ...
- OC中的copy
copy的概念 Copy的字面意思是"复制"."拷贝",是一个产生副本的过程 对象拷贝的目的:要使用某个对象的数据,但是在修改对象的时候不影响原来的对象内容,常 ...
- Python基本语法--数据结构与运算符
# -*- coding: utf-8 -*- print "Hello, Python!"; print ("Hello, Python!"); #行和缩进 ...
- Redis学习-Sentinel
Redis的Sentinel系统用于管理多个Redis服务器(instance), 该系统执行以下三个任务: 监控(Monitoring):Sentinel会不断地检查你的主服务器和从服务器是否运作正 ...
- 读《Java并发编程的艺术》(二)
上篇博客开始,我们接触了一些有关Java多线程的基本概念.这篇博客开始,我们就正式的进入了Java多线程的实战演练了.实战演练不仅仅是贴代码,也会涉及到相关概念和术语的讲解. 线程的状态 程的状态分为 ...