总结:《C++ primer》中文版——第一章 快速入门

来源:互联网 发布:中山大学软件学院考研 编辑:程序博客网 时间:2024/06/07 10:19
1.栈和堆的区别
   栈:系统管理的一小片区域。
   堆:程序员自由挥霍的一大片空间。
2.编译: g++ -c hello.cc
   链接: g++ hello.o
   执行: a.out 
  GNU: g++ prog1.cc -o prog1 (目标文件,若缺省,生成a.out文件)
3.在大多数系统中,main函数的返回值是一个状态指示器。返回0往往表示main函数成功执行完毕。
4.UNIX下,可执行文件没有后缀。
5.C++程序文件的后缀与所运行的具体编译器有关。prog.cxx/prog.cpp/prog.cp/prog.c
6.iostream标准库定义了4个IO对象。
 cin  :标准输入
 cout :标准输出
 cerr:标准错误输出,没有缓冲,输出给它的内容立即被输出。用来输出警告和错误信息给程序的使用者。
 clog:用于产生程序执行一般信息。有缓冲,缓冲区满时被输出
运行程序时,大部分操作系统都提供了重定向输入或输出流的方法。利用重定向可以将这些流与所选择的文件联系起来。
7.std::cout<<"Enter two numbers:"<<std::endl;
"<<":输出操作符,每个输出操作符实例都接受两个操作数。左操作数必须是ostream对象,右操作数是要输出的值。操作符将其右操作数写到作为其左操作数ostream对象。输出操作返回的值是输出流本身。
"endl":操作符将它写入输出流时,具有输出换行的效果,并刷新与设备相关联的缓冲区(buffer)。通过刷新缓冲区,用户立即得到写入输出流的内容。(换行+刷新)
注:忘记刷新输出流可能会造成输出停留在缓冲区,如果程序崩溃,将会导致对程序崩溃位置的错误判断。(这里不是太理解。日期:2015.02.05)
8.使用命名空间using namespace std 或 std::,可以避免由于无意间使用了与库中所定义相同的名字而引起冲突。
9.">>":输入操作数,它接受一个iostream对象作为其左操作数,接受一个对象作为其右操作数。从istream操作数读取数据并保存到右操作数。
如:cin>>c;
10.大部分出现空格符的地方都可以用换行符替换。
例外情况:--字符串字面值中空格不能用换行符替换,因为所对应的ASCII码不同。
                --空格符出现在预处理指示中。
11.定义变量时,应该给变量赋初值,除非确定将变量用于其他意图之前会覆盖这个初值。如果不能保证读取变量之前重置变量,就应该赋初值。(我的理解:在赋初值之前,所有的变量都是随机数)
12.for(int val = 1;val <= 10; ++val)//若写成val++结果是一样的,没有什么区别。退出for循环后,变量val不在可访问。
13.处理问题:
    读入未知数目的输入:
int main()
{
    int sum = 0,value;
    while(std::cin>>value)
        {
            sum += value;
            std::cout<<"sum is:"<<sum<<std::endl;
            return 0;
            }
注:--当使用istream对象最为条件,结果是测试流的状态。如果流是有效的,即如果读入下一个输入是可能的,那么测试成功。遇到文件结束符或者遇到无效输入时,如读取了一个不是整数的值,则istream对象是无效的,处于无效状态下的istream对象将导致失败。
      --文件结束符
  windows:ctrl + z
  UNIX:      ctrl +d

0 0
原创粉丝点击