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(第五章)的更多相关文章

  1. 第五章 体验Qt Creator的神奇魅力

    第五章 体验Qt Creator的神奇魅力 Qt Creator是官方提供的一个轻量级IDE(集成开发环境),功能强大,是程序员快速开发程序的有力助手.下面我们用它实现一个helloworld工程. ...

  2. 深入理解 C 指针阅读笔记 -- 第五章

    Chapter5.h #ifndef __CHAPTER_5_ #define __CHAPTER_5_ /*<深入理解C指针>学习笔记 -- 第五章*/ /*不应该改动的字符串就应该用 ...

  3. 《Django By Example》第五章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者@ucag注:大家好,我是新来的翻译, ...

  4. 《Entity Framework 6 Recipes》中文翻译系列 (22) -----第五章 加载实体和导航属性之延迟加载

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 第五章 加载实体和导航属性 实体框架提供了非常棒的建模环境,它允许开发人员可视化地使 ...

  5. 精通Web Analytics 2.0 (7) 第五章:荣耀之钥:度量成功

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第五章:荣耀之钥:度量成功 我们的分析师常常得不到我们应得的喜欢,尊重和资金,因为我们没有充分地衡量一个黄金概念:成果.因为我们 ...

  6. 《Linux内核设计与实现》读书笔记 第五章 系统调用

    第五章系统调用 系统调用是用户进程与内核进行交互的接口.为了保护系统稳定可靠,避免应用程序恣意忘形. 5.1与内核通信 系统调用在用户空间进程和硬件设备间添加了一个中间层, 作用:为用户空间提供了一种 ...

  7. Java语言程序设计(基础篇) 第五章 循环

    第五章 循环 5.2 while循环 1.while循环的语法如下: while(循环继续条件){ //循环体 语句(组); } 2.程序:提示用户为两个个位数相加的问题给出答案 package co ...

  8. 读《编写可维护的JavaScript》第五章总结

    第五章 UI层的松耦合 5.1 什么是松耦合 在Web开发中,用户界面是由三个彼此隔离又相互作用的层定义的: HTML是用来定义页面的数据和语义 CSS用来给页面添加样式 JavaScript用来给页 ...

  9. 《Linux内核设计与实现》课本第五章学习笔记——20135203齐岳

    <Linux内核设计与实现>课本第五章学习笔记 By20135203齐岳 与内核通信 用户空间进程和硬件设备之间通过系统调用来交互,其主要作用有三个. 为用户空间提供了硬件的抽象接口. 保 ...

随机推荐

  1. Ubuntu搭建mysql,Navicat Premium连接

    保存编辑结果与退出vim编辑器 https://jingyan.baidu.com/article/495ba8410ff14d38b30ede01.html 首先,我们需要使用apt安装mysql, ...

  2. cmd中关闭windows2008错误弹窗

    net stop sharedaccess reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Windows /v ErrorMode / ...

  3. Andriod中自定义Dialog样式的Activity点击空白处隐藏软件盘(Dialog不消失)

    一.需求触发场景: 项目中需要出发带有EditText的Dialog显示,要求在编辑完EditText时,点击Dilog的空白处隐藏软键盘.但是Dialog不会消失.示例如下: 二.实现方法: 发布需 ...

  4. ICDM评选:数据挖掘十大经典算法

    原文地址:http://blog.csdn.net/aladdina/article/details/4141177 国际权威的学术组织the IEEE International Conferenc ...

  5. 纯css实现翻牌特效

    大家有没有看到过网上很炫的翻牌效果,牌正面对着我们,然后点击一下,牌就被翻过来了,效果很酷炫,是不是很想知道是怎么实现的么,代码很简单,跟着小编往下走. 先给大家介绍一下翻牌的原理: 1.父容器设置设 ...

  6. struts2标签库----控制标签详解

         前面几篇文章我们介绍了有关struts2的基本内容,简单理解了整个框架的运作流程.从本篇开始我们逐渐了解和使用struts2为我们提供的标签库技术,使用这些标签可以大大降低我们表现层的开发难 ...

  7. 华硕 F1A55-M LX3系列跳线图

    天啊,第一次遇到这么变态的主板跳线...浪费我好久时间找到这跳线图

  8. SpringData系列四 @Query注解及@Modifying注解

    @Query注解查询适用于所查询的数据无法通过关键字查询得到结果的查询.这种查询可以摆脱像关键字查询那样的约束,将查询直接在相应的接口方法中声明,结构更为清晰,这是Spring Data的特有实现. ...

  9. jdbc驱动的类加载过程

    这段时间跟类加载机制是干上了. 这一篇来分析一下jdbc工作过程中涉及到的类加载流程,重点是想看看在双亲委派模型不适用的时候,如何解决. 第一步,加载数据库的驱动 Class.forName(&quo ...

  10. Mac上面Mov转gif

    尝试了很多方法,后来发现这个网站转换的结果最好, http://ezgif.com/video-to-gif/