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齐岳 与内核通信 用户空间进程和硬件设备之间通过系统调用来交互,其主要作用有三个. 为用户空间提供了硬件的抽象接口. 保 ...
随机推荐
- 短路运算|字符串操作函数|内存mem操作函数
body, table{font-family: 微软雅黑; font-size: 10pt} table{border-collapse: collapse; border: solid gray; ...
- xml语法规则
所有 XML 元素都须有关闭标签 在 HTML,经常会看到没有关闭标签的元素: <p>This is a paragraph <p>This is another paragr ...
- 解析http协议的url
package util; import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamRea ...
- 【山东省选2008】郁闷的小J 平衡树Treap
小J是国家图书馆的一位图书管理员,他的工作是管理一个巨大的书架.虽然他很能吃苦耐劳,但是由于这个书架十分巨大,所以他的工作效率总是很低,以致他面临着被解雇的危险,这也正是他所郁闷的.具体说来,书架由N ...
- 【DP系列学习一】简单题:kickstart2017 B.vote
https://code.google.com/codejam/contest/6304486/dashboard#s=p1 这是一道简单的dp,dp[i][j]代表A的voter为i,B的voter ...
- 搭建本地git仓库
使用工具:git|码云 步骤: 注册码云账号,创建项目名称等. 本地git配置 本地文件目录:git init(初始化创建分支master) 基础配置:git config --global user ...
- [.NET] 《Effective C#》快速笔记 - C# 中的动态编程
<Effective C#>快速笔记 - C# 中的动态编程 静态类型和动态类型各有所长,静态类型能够让编译器帮你找出更多的错误,因为编译器能够在编译时进行大部分的检查工作.C# 是一种静 ...
- Flume总结(1)
一.日志采集:从网络端口接收数据,下沉到logger 文件netcat-logger.conf: # Name the components on this agent #给那三个组件取个名字 a1. ...
- SSH免密码(日志三)
上一篇:JDK安装以及安装过程中出现的问题(日志二) 原理,就是RSA加密,含有公钥和私钥,具体言之,用公钥来确认请求人是否是私钥的持有人. 1, 2, 3, 4, ssh免密码过程中遇到的问题:需要 ...
- Python之函数知识
Python函数分类 a,内置函数 b,自定义函数 c,导入函数 一个函数就相当于一个功能块,比如获取数据库,更新数据库,函数其实就是代码的分块,调用函数来执行代码块 一块就代表一个功能 内置函数有以 ...