最近比较混乱,感觉是有太多的东西需要学习(JAVA、CSS、C#、Android、Html5、python等等),可时间就这么多,而且人只有一个。之前工作中使用过VC++、C,然后就一头扎进工作中去,加班再加班,总是在赶着客户的需求,很少抬起头,冷静的想一想未来的发展。从深圳回洛阳休整一段时间,有闲暇了,想的就多了,想去跟随潮流去学JAVA,学着做Android或ISO的APP或者去学C#(感觉C#很不错), 想多了就会有胸腔发闷去无处发泄的感觉!

    冷静下来时也知道,不要想着什么都会;在计算机软件领域,像我这样笨的人应该是什么都学会的时候,什么都不会了;更主要的是C++我也没有真正的成为所谓的大牛,知识归零的心态是要有,但不是推倒重建知识体系;想着吧,既然还有一点基础,还是坚持研究下去吧(尽管很多人都说C++很难,用的范围也在萎缩)!

    那么知识归零吧,从头开始再学C++;从《Accelerated C++》开始;

    从一个小程序开始吧!

1 #include <iostream>
2 
3 int main()
4 {
5     std::out << " Hello World ! "  << std::endl;
6 
7     return 0;
8 }

     #include 一般出现在程序开头,明确指出我们所希望使用的标准库或其他头文件;使用<>括起,代表C++库的标准头文件。

     函数(function)是一段具有名称的程序,程序其他部分可以调用或使函数运行。每个C++程序都必须包含一个名为main的函数(返回一个整数类型的值作为其结果,用来告知编译器是否运行成功,零值表示成功;main后面的括号括住从编译器中接收到的参数)。

    花括号({})告诉编译器出现在它们之间的所有内容当作一个单元来处理。

    返回值的类型必须和函数声明的返回类型一致。

一些较为深入的观察

    表达式会让编辑器对某些事务进行运算。运算会产生一个结果,同时还有可能会具有副作用--也就是说,副作用不是结果的直接部分,但它会影响程序或系统环境的状态。

      表达式包含操作数运算符,操作数和运算符都能以多种形式出现。

        每一个操作数都具有一个类型,从本质上来看,类型表示的是一种数据结构和对此数据结构的合理操作。

        运算符的效果取决于它的操作数的类型。

    作用域:包括名字空间和花括号两种

    名字空间是一个相关名称的集合。

小结

    程序结构:C++程序通常具有自由风格,也就是说,只是在防止相邻的符号混在一起的时候,我们才必须使用空白符。另外,新行(也就是系统环境从程序的一行转换到下一行时所用的方式)也是另一种形式的空白,此外它并没有其他特别含义。程序中空白符出现位置的不同可能会提高(或降低)程序的可读性。

    以下的三个实体不能具有自由风格:

    字符串直接量    用双括号括住的字符;不可以跨行

    #include名称   必须在单独的一行中出现(注释除外)

    //注释             //后面可以跟着任何东西;结束于当前行的行尾

    以/*开始的注释具有自由风格; 它结束于第一个相邻的*/并且可以跨越多行

    类型定义了数据结构以及对这些数据的操作。C++提供两种形式的类型:核心语言提供的内件类型;定义在核心语言之外的类型。

    名字空间是一种把相关名称聚集在一起的技术。

    字符串直接量从双引号(")开始而且结束于双引号;每个字符串直接量都必须全部出现在程序的一行中。如果字符串直接量中的字符是跟在反斜扛(\)后面,那么它们会有特殊意义。

    定义和头文件:C++程序使用的每一个名称都必须具有一个相应的定义。标准库在头文件中定义它的名称,程序可以通过#include指令来访问这些名称。名称必须在使用前定义;因此,我们必须在使用头文件中的任何名称之前编写#include指令。 

    主函数(main):所有的C++程序都必须定义且只能定义一个名为main的函数,这个函数返回一个int类型的值。系统环境通过调用mian函数来运行程序。main函数返回值为0意味着运行成功;返回值不是0则意味着失败。一般来说,函数必须包含至少一条的return语句,而且在函数的最后一定要有return语句。但main比较特殊;它可以没有返回语句,此时编译器就会假设它返回0。

     花括号和分号:出现在花括号中的零条或多条语句也是一条语句,它要求编译器实现按它们出现的先后次序来顺序执行这些语句。就算函数的函数体只含有一条语句,也必须使用花括号来括住它。在一对匹配的花括号之间的语句构成了一个作用域。

    如果一个表达式的后面跟着一个分号,那这个表达式也是一条语句。它的执行只是为了获得副作用,实际产生的结果将被忽略。表达式是可选的:忽略了表达式就会产生一条空语句,这条语句是没有任何作用的。

    输出:对std::cout<<e进行计算会把e的值写到标准输出流中,同时这个计算会产生类型为ostream的std::cout来作为它的结果值,这样就可以进行链式的输出操作了。