第一章



1、内置类型:如int型等有C++语言定义的类型
2、调用GNU或微软编译器
程序编写完成后需要进行编译,如何进行编译,与具体的操作系统和编译器有关。需要查看参考手册或者了解所用到的编译器的工作细节.
调用C++编译器的命令因编译器和操作系统的不同而不同,常用的编译器是GNU编译器和微软的Visual Studio,调用GNU编译器的默认命令是g++:
 $ g++ prog1.cc -o prog1
这里$是系统提示符。该命令产生一个名为prog1或者prog1.exe的可执行文件,在Unix系统下,可执行文件没有后缀;windows系统下,后缀为.exe。
-o prog1是编译器参数以及用来存放可执行文件的文件名。如果省略-o prog1,那么编译器在Unix系统下产生名为a.out 而在windows下产生名为a.exe的可执行文件。

3、C++并没有直接定义进行输入或者输出的(IO)的任何语句,这种功能是由标准库提供,尤其处理格式化输入和输出的iostream库-----该库的基础是两种名为istream和ostream的类型,分别表示输出流和输入流。 
流是指要从某种IO设备上读入或写出的字符串序列。“流”试图说明字符是随着时间顺序生成或消耗的.
标准输入输出对象:cin/cout/cerr/clog    .
4、endl是一个特殊值,成为操纵符,将它写入输出流时,具有输出换行的作用,并刷新与设备相关联的缓冲区(buffer)。通过刷新缓冲区,用户可以立即看到写入到流中的输出。
前缀std表示命令空间,如std::cout,std::endl。使用命令空间,程序员可以避免由于无意中使用了与库中所定义名字相同的名字而引致冲突。
5、IOstream库定义了接受全部内置类型的输入输出符号版本.


6、关键概念:已初始化变量和未初始化变量


初始化变量是指变量在定义时就给定一个值。未初始化变量则未给定初始值:
   int val1 = 0;     // initialized
   int val2;         // uninitialized
给变量一个初始值几乎总是正确的,但不要求必须这样做。当我们确定变量在第一次使用时会赋一个新值,那就不需要创建初始值。
定义变量时,应该给变量赋初始值,除非确定将变量用于其他意图之前会覆盖这个初值。如果不能保证读取变量之前重置变量,就应该初始化变量。


7、
编译器的部分工作是寻找程序代码中的错误。编译器不能查出程序的意义是否正确, 但它可以查出程序形式上的错误。下面是编译器能查出的最普遍的一些错误。
    1.语法错误。程序员犯了 C++ 语言中的语法错误。下面代码段说明常见的语法错误;每个注释描述下一行的错误。
                     // error: missing ')' in parameter list for main
       int main ( {
                     // error: used colon, not a semicolon after endl
           std::cout << "Read each file." << std::endl:
                     // error: missing quotes around string literal
           std::cout << Update master. << std::endl;
                     // ok: no errors on this line
           std::cout << "Write new master." <<std::endl;
                     // error: missing ';' on return statement
           return 0
       }
2.类型错误。C++ 中每个数据项都有其相关联的类型。例如,值 10 是一个整数。用双引号标注起来的单词“hello”是字符串字面值。类型错误的一个实例是传递了字符串字面值给应该得到整型参数的函数。
3.声明错误。C++ 程序中使用的每个名字必须在使用之前声明。没有声明名字通常会导致错误信息。最常见的两种声明错误,是从标准库中访问名字时忘记使用“std::”,以及由于疏忽而拼错标识符名:




    #include <iostream>
    int main()
    {
        int v1, v2;
        std::cin >> v >> v2; // error: uses " v "not" v1"
        // cout not defined, should be std::cout
        cout << v1 + v2 << std::endl;
        return 0;
     }




8、
从键盘输入文件结束符


操作系统使用不同的值作为文件结束符。Windows 系统下我们通过键入 control—z——同时键入“ctrl”键和“z”键,来输入文件结束符。Unix 系统中,包括 Mac OS—X 机器,通常用 control—d。


9、类机制是 C++ 中最重要的特征之一。事实上,C++ 设计的主要焦点就是使所定义的类类型的行为可以像内置类型一样自然。像 istream 和 ostream 这样的库类型,都是定义为类的,也就是说,它们严格说来不是语言的一部分。


10、
术语






argument(实参)
传递给被调用函数的值。
block(块)
花括号括起来的语句序列。
buffer(缓冲区)
一段用来存放数据的存储区域。IO 设备常存储输入(或输出)到缓冲区,并独立于程序动作对缓冲区进行读写。输出缓冲区通常必须显式刷新以强制输出缓冲区内容。默认情况下,读 cin 会刷新 cout;当程序正常结束时,cout 也被刷新。
built-in type(内置类型)
C++ 语言本身定义的类型,如 int。
cerr


绑定到标准错误的 ostream 对象,这通常是与标准输出相同的流。默认情况下,输出 cerr 不缓冲,通常用于不是程序正常逻辑部分的错误信息或其他输出。
cin
istream object used to read from the standard input.
用于从标准输入中读入的 istream 对象。
class


用于自定义数据结构的 C++ 机制。类是 C++ 中最基本的特征。标准库类型,如 istream 和 ostream,都是类。
class type
由类所定义的类型,类型名就是类名。
clog
绑定到标准错误的 ostream 对象。默认情况下,写到 clog 时是带缓冲的。通常用于将程序执行信息写入到日志文件中。
comments(注释)
编译器会忽略的程序文本。C++ 有单行注释和成对注释两种类型的注释。单行注释以 // 开头,从 // 到行的结尾是一条注释。成对注释以 /* 开始包括到下一个 */ 为止的所有文本。
condition(条件)
求值为真或假的表达式。值为 0 的算术表达式是假,其他所有非 0 值都是真。
cout
用于写入到标准输出的 ostream 对象,一般情况下用于程序的输出。
curly brace(花括号)
花括号对语句块定界。左花括号“{”开始一个块,右花括号“}”结束块。
data structure(数据结构)
数据及数据上操作的逻辑组合。
edit-compile-debug(编辑—编译—调试)
使得程序正确执行的过程。
end-of-file(文件结束符)
文件中与特定系统有关的标记,表示这个文件中不再有其他输入。
expression(表达式)
最小的计算单元。表达式包含一个或多个操作数并经常含有一个操作符。表达式被求值并产生一个结果。例如,假定 i 和 j 都为 int 型,则 i + j 是一个算术加法表达式并求这两个 int 值的和。表达式将在第五章详细介绍。
for statement(for 语句)
提供迭代执行的控制语句,通常用于步进遍历数据结构或对一个计算重复固定次数。
function(函数)
有名字的计算单元。
function body(函数体)
定义函数所执行的动作的语句块。
function name(函数名)
Name by which a function is known and can be called.
函数的名字标识,函数通过函数名调用。
header(头文件)
使得类或其他名字的定义在多个程序中可用的一种机制。程序中通过 #include 指示包含头文件。
if statement(if 语句)
根据指定条件的值执行的语句。如果条件为真,则执行 if 语句体;否则控制流执行 else 后面的语句,如果没有 else 将执行 if 后面的语句。
iostream(输入输出流)
library type providing stream-oriented input and output.
提供面向流的输入和输出的标准库类型。
istream(输入流)
提供面向流的输入的标准库类型。
library type(标准库类型)
标准库所定义的类型,如 istream。
main function(主函数)
执行 C++ 程序时,操作系统调用的函数。每一个程序有且仅有一个主函数 main。
manipulator(操纵符)
在读或写时“操纵”流本身的对象,如 std::endl。A.3.1 节详细讲述操纵符。
member function(成员函数)
类定义的操作。成员函数通常在特定的对象上进行操作。
method(方法)
成员函数的同义词。
namespace(命名空间)
将库所定义的名字放至单独一个地方的机制。命名空间有助于避免无意的命名冲突。C++ 标准库所定义的名字在命名空间 std 中。
ostream(输出流)
提供面向流的输出的库类型。
parameter list(形参表)
函数定义的组成部分。指明可以用什么参数来调用函数,可能为空。
preprocessor directive(预处理指示)
C++ 预处理器的指示。#include 是一个预处理器指示。预处理器指示必须出现在单独的行中。第 2.9.2 节将对预处理器作详细的介绍。
return type(返回类型)
函数返回值的类型。
source file(源文件)
用来描述包含在 C++ 程序中的文件的术语。
standard error(标准错误)
用于错误报告的输出流。通常,在视窗操作系统中,将标准输出和标准错误绑定到程序的执行窗口。
standard input(标准输入)
和程序执行窗口相关联的输入流,通常这种关联由操作系统设定。
standard library(标准库)
每个 C++ 编译器必须支持的类型和函数的集合。标准库提供了强大的功能,包括支持 IO 的类型。C++ 程序员谈到的“标准库”,是指整个标准库,当提到某个标准库类型时也指标准库中某个特定的部分。例如,程序员提到的“iostream 库”,专指标准库中由 iostream 类定义的那部分。
standard output(标准输出)
和程序执行窗口相关联的输出流,通常这种关联由操作系统设定。
statement(语句)
C++ 程序中最小的独立单元,类似于自然语言中的句子。C++ 中的语句一般以分号结束。
std
标准库命名空间的名字,std::cout 表明正在使用定义在 std 命名空间中的名字 cout。
string literal(字符串字面值)
以双引号括起来的字符序列。
uninitialized variable(未初始化变量)
没有指定初始值的变量。类类型没有未初始化变量。没有指定初始值的类类型变量由类定义初始化。在使用变量值之前必须给未初始化的变量赋值。未初始化变量是造成bug的主要原因之一。
variable(变量)
有名字的对象。
while statement(while语句)
一种迭代控制语句,只要指定的条件为真就执行 while 循环体。while 循环体执行0次还是多次,依赖于条件的真值。
() operator[()操作符]
调用操作符。跟在函数名后且成对出现的圆括号。该操作符导致函数被调用,给函数的实参可在括号里传递。
++ operator(++操作符)
自增操作符。将操作数加 1,++i 等价于 i = i + 1。
+= operator(+= 操作符)
复合赋值操作符,将右操作数和左操作数相加,并将结果存储到左操作数中;a += b等价于 a = a + b。
. operator(. 操作符)
点操作符。接受两个操作数:左操作数是一个对象,而右边是该对象的一个成员的名字。这个操作符从指定对象中取得成员。
:: operator(:: 操作符)
作用域操作符。在其他的使用过程中,:: 操作符用于在命名空间中访问名字。例如,std::cout 表示使用命名空间 std 中的名字 cout。
= operator(= 操作符)
表示把右操作数的值赋给左操作数表示的对象。
<< operator(<< 操作符)
输出操作符。把右操作数写到左操作数指定的输出流:cout << "hi" 把 hi 写入到标准输出流。输出操作可以链接在一起使用:cout << "hi << "bye" 输出 hibye。
>> operator(>> 操作符)
输入操作符。从左操作数指定的输入流读入数据到右操作数:cin >> i 把标准输入流中的下一个值读入到 i 中。输入操作能够链接在一起使用:cin >> i >> j 先读入 i 然后再读入 j。
== operator(== 操作符)
等于操作符,测试左右两边的操作数是否相等。
!= operator(!=操作符)
不等于操作符。测试左右两边的操作数是否不等。
<= operator(<= 操作符)
小于或等于操作符。测试左操作数是否小于或等于右操作数。
< operator(< 操作符)
小于操作符。测试左操作数是否小于右操作数。
>= operator(>= 操作符)
大于或等于操作符。测试左操作数是否大于或等于右操作数。
> operator(> 操作符)
大于操作符。测试左操作数是否大于右操作数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值