《C++ primer》--第1,2章小结
来源:http://blog.csdn.net/wangqiulin123456/article/details/8483853
1、变量初始化:
- int val1 = 0; //初始化
- int val2; //未初始化
2、编译器的部分功能: 查错
- 语法错误
- 类型错误
- 声明错误
3、从键盘输入文件结束符
4、整型(integral type):表示整数、字符和布尔值的算术类型。
5、C++中,把负值赋给unsigned对象是合法的,其结果是该负数对该类型的取值个数求模后的值,如果把-1赋给8位的unsigned char 那么结果就是255。
6、字面值常量(literal cinstant)
- 整形字面值:可以用3钟进
制来表示,十进制(decimal)、八进制(octal)、十六进制(hexadecimal)。以0开头的是八进制,以0x或0X开头的是十六进制。
还可以在其后加后缀,能强制将字面值常量转化如:L或者l代表常量long,U或者u代表unsigned类型。如:128u /*unsigned*/
8lu/*unsigned long*/ - 浮点字面值:通常用十进制或者科学计数法表示,科学技术用E或者e表示。其后加F或者f表示单精度,L或者l表示扩展精度。 如:3.1232F 3.232323E0f
- 布尔值和字符字面值:
- 非打印字符转移序列
7、变量
8、变量命名习惯
- 变量名一般用小写字母。例如通常写成index而不是Index或者INDEX
- 标识符应使用能帮组记忆的名字
- 包含多个词的标识符书写为在每个词之间添加一个下划线,或者每个内嵌的词的第一个字母都大写
9、变量的初始化
10、变量初始化规则
内置类型变量是否自动初始化取决于变量定义的位置。在函数体外定义的变量都初始化成0,在函数体内定义的内置类型变量不进行自动初始化。除了用作赋值操作
符的做操作数,未初始化变量会引起错误难以发现。所以建议每个内置类型的对象都要初始化,虽不是必须但会更加容易和安全。
11、const限定符
- //file_1.cpp
- int counter; //definition
- //file_2.cpp
- extern int counter; //uses counter from file_1
- ++counter; //add counter defined in file_1
- //defines and initializes a const that is accessible to other files
- extern const int counter = 12; //definition
- //file_2.cpp
- extern const int counter; //uses counter from file_1
- //uses counter defined file_1
- for(int index=0; index != counter; ++index)
- {
- ////
- }
12、引用
- int ival = 1024;
- int &refVal = ival; //ok
- int &refVal2; //error: a refernce must be initialized
- int &refVal3 = 10; // error:initializer must be an object
- 引用是别名:当引用初始化后,只要该引用存在,他就保持绑定到初始化时指定的对象。不可能将引用绑定到另一个对象。
- 定义多个引用:可以在一个类型定义行中定义多个引用。必须在每个引用标识符前添加"&"符号。
- const引用:指向const对象的引用。可以读取但不能修改。非const引用只能绑定到与该引用同类型的对象,const引用可以绑定到不同但相关的类型的对象或者绑定右值。
13、typedef名字:用来定义类型的同义词。有一下三个目的:
- 为了隐藏特定类型的实现,强调使用类型的目的
- 简化复杂的类型定义,使其更易理解
- 允许一种类型用于多种目的,同时使得每次使用该类型的目的明确
14、枚举(enumeration):定义整数常量集,并将他们聚集成组。
- //input is 0, output is 1, and append is 2
- enum open_modes {input,output,append};
- //shape is 1, sphere is 2, cylinder is 3, polygon is 4
- enum Forms {shape = 1, sphere, cylinder, polygon};
15、头文件:
- 头文件用于声明而不是用于定义(头文件包含在多个源文件中,所以不应该含有变量或者函数的定义,有三个例外:头文件可以定义类、值在编译时就已知的const对象和inline函数)
- 一些const对象定义在头文件中
16、预处理器的简单介绍
- #ifndef __CPLUSPLUSPRIMER_H__
- #define __CPLUSPLUSPRIMER_H__
- //....
- #endif //__CPLUSPLUSPRIMER_H__
《C++ primer》--第1,2章小结的更多相关文章
- C Primer Plus_第6章_循环_编程练习
1.题略 #include int main(void) { int i; char ch[26]; for (i = 97; i <= (97+25); i++) { ch[i-97] = i ...
- C Primer Plus_第5章_运算符、表达式和语句_编程练习
Practice 1. 输入分钟输出对应的小时和分钟. #include #define MIN_PER_H 60 int main(void) { int mins, hours, minutes; ...
- C Primer Plus_第四章_字符串和格式化输入输出_编程练习
Practice 1.输入名字和姓氏,以"名字,姓氏"的格式输出打印. #include int main(void) { char name[20]; char family[2 ...
- Vimtutor(中文版)学习笔记各章小结
在Bash中直接输入 vimtutor 打开新世界!通常阅读完需要25-30分钟不等,像玩游戏一样学会vim,然后爱不释手 里面设置了很多例子通过实践操作来学,这里仅把vimtutor上的每一章小结记 ...
- Python基础 第四章 字典(2)字典方法&章小结
1. clear 方法clear删除所有的字典项,就地执行,什么都不返回(或者说返回None) d = {} d['name'] = 'Gumby' d['age'] = 42 print(d) re ...
- Python基础 第三章 使用字符串(3)字符串方法&本章小结
字符串的方法非常之多,重点学习一些最有用的,完整的字符串方法参见<Python基础教程(第三版)>附录B. 模块string,虽然风头已小,但其包含了一些字符串方法中没有的常量和函数,故将 ...
- 20190806-Python基础 第二章 列表和元组(3)元组&章小结
元组,不可修改的序列(与列表的唯一差别) 1. 元组用圆括号括起,用逗号分隔 2. 如果只有一个值,也必须在后面加上逗号 print((42)) print((42,)) 结果: 42 (42,) p ...
- Unity 游戏框架搭建 2019 (九~十二) 第一章小结&第二章简介&第八个示例
第一章小结 为了强化教程的重点,会在合适的时候进行总结与快速复习. 第二章 简介 在第一章我们做了知识库的准备,从而让我们更高效地收集示例. 在第二章,我们就用准备好的导出工具试着收集几个示例,这些示 ...
- Unity 游戏框架搭建 2019 (十八~二十) 概率函数 & GameObject 显示、隐藏简化 & 第二章 小结与快速复习
在笔者刚做项目的时候,遇到了一个需求.第一个项目是一个跑酷游戏,而跑酷游戏是需要一条一条跑道拼接成的.每个跑道的长度是固定的,而怪物的出现位置也是在跑道上固定好的.那么怪物出现的概率决定一部分关卡的难 ...
- 《树莓派学习指南(基于Linux)》——本章小结
本节书摘来自异步社区<树莓派学习指南(基于Linux)>一书中的第二章的本章小结,作者[英]Peter Membrey ,[澳]David Hows ,译者 张志博,孙峻文,更多章节内容可 ...
随机推荐
- JLink v8克隆版破解向导(此方法仅适用XP32位版 WIN7及以上和64位均不支持 建议使用虚拟机)
此方法仅适用XP32位版 WIN7及以上和64位均不支持 建议使用虚拟机 摘要 Jlink 4.5版本之后驱动会识别老的克隆版的JlinkV8,Jlink软件在启动时会提示为克隆版本后退出.目前主流的 ...
- ECharts本地部署
将下载的包解压,再将包内文件copy到C:\inetpub\wwwroot下 在html中做如下引用: <script type="text/javascript" sr ...
- 拥有更好性能的requesAnimationFrame(Better Performance with requestAnimationFrame)
介绍: 这篇文章讨论的是你可以(也应该)学习通过使用requestAnimationFrame API,而不是使用之前的setInterval/setTimeout方法,来提高动画的性能:如何使用re ...
- Jquery瀑布流布局
瀑布流布局最近真的很流行,很多人都跟我一样想知道是怎么做出来的吧,经过网上搜索大量的参考结合N边的实验今天终于被我写出来了,为了便于大家理解我使用了jQuery(当然用源生js代码执行的效率会高一些, ...
- 阿里Druid数据库连接池使用
阿里巴巴推出的国产数据库连接池,据网上测试对比,比目前的DBCP或C3P0数据库连接池性能更好 可以监控连接以及执行的SQL的情况. 加入项目的具体步骤: 1.导入jar <parent> ...
- 在ump系统的那半个多月-jqGrid
2012.04统一监控平台项目打酱油的日子 系统介绍: 目标,致力于服务于公司内部的所有系统,对所有接入监控的系统进行监控,包括系统监控,URL存活监控,端口存活监控,方法监控等. 作为打酱油的我,没 ...
- Android中的sp与wp
一.相关code文件 二.code具体分析 lightrefebase: refbase: sp: wp: flag: 三.使用注意事项 不能在把目标对象赋给一个长久存在的sp对象之前赋给一个短生命周 ...
- OpenJDK和OracleJDK的JVM性能有多大差距
首先要先明确OpenJDK和Sun/OracleJDK之间,以及OpenJDK 6.OpenJDK 7.OpenJDK 7u和OpenJDK 8等项目之间是什么关系,这有助于确定接下来编译要使用的JD ...
- Spring 注解@Transactional
Spring事务的传播行为 在service类前加上@Transactional,声明这个service所有方法需要事务管理.每一个业务方法开始时都会打开一个事务. Spring默认情况下会对运行期例 ...
- [51NOD1127]最短的包含字符串(尺取法)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1127 思路:尺取法,一开始我考虑更新右指针,直到遇到一个和l指 ...