c++

1 查看main返回值: commandline>echo %errorlevel%

2 cout,cin,cerr,clog在头脑中都看作是硬件输出设备,就明白是使用 '<<' or ' >>'

3 表达式  std::cout << "Enter two numbers:"  返回其左操作数 std::cout,所以以下是合法的.

          (std::cout << "Enter two numbers:") << std::endl;

 

4 endl 是一个特殊值,称为操纵符 ,将它写入输出流时,具有输出换行的效果,并刷新与设备相关联的缓冲区 。通过刷新缓冲区,用户可立即看到写入到流中的输出,所以:

     在调试过程中插入输出语句,这些语句都应该刷新 输出流。忘记刷新输出流可能会造成输出停留在缓冲区中,将会导致程序错误推断位置。

 

5 使用命名空间

      程序员可以避免与库中定义的名字相同而引起无意冲突。因为标准库定义的名字是定义在命名空间中,所以我们可以按自己的意图使用相同的名字

#include #include // using declarations states our intent to use these names from the namespace std using std::cin; using std::string; int main() { string s; // ok: string is now a synonym for std::string cin >> s; // ok: cin is now a synonym for std::cin cout << s; // error: no using declaration; we must use full name std::cout << s; // ok: explicitly use cout from namepsace std }

 

6 分析while (std::cin >> value)

返回其左操作数。while 条件测试返回结果,意味着测试 std::cin 。如果流是有效的(也就是说,如果读入下一个输入是可能的)那么测试成功。遇到文件结束符 或遇到无效输入时,如读取了一个不是整数的值,则 istream 对象是无效的。处于无效状态的 istream 对象将导致条件失败。

 

7 c++ 算术类型的存储空间依机器而定。C++标准规定了每个算术类型的最小存储空间,但它并不阻止编译器使用更大的存储空间。一般, short 类型为半个机器字长,int 类型为一个机器字长,而 long 类型为一个或两个机器字长(在 32 位机器中 int 类型和 long 类型通常字长是相同的)。

 

8intshortlong 都默认为带符号型。要获得无符号型则必须指定该类型为 unsigned. 整型类型当中,试着把一个超出其取值范围的值赋给一个指定类型的对象时。c++编译器对取值数目求模.

 

9

当执行整型算术运算时,很少使用 short 类型。大多数程序中,使用 short 类型可能会隐含赋值越界的错误。这个错误会产生什么后果将取决于所使用的机器。比较典型的情况是值“截断(wrap around)”以至于因越界而变成很大的负数。同样的道理,虽然 char 类型是整型,但是 char 类型通常用来存储字符而不用于计算。事实上,在某些应用中 char 类型被当作 signed 类型,在另外一些应用中则被当作 unsigned 类型,因此把 char 类型作为计算类型使用时容易出问题。

 

10 literal constants

    true, false,  20, 20.1L, 20.02F, 'a', L'a', "a"(为了兼容 C 语言,C++ 中所有的字符串字面值都由编译器自动在末尾添加一个空字符), L"a"(同样以一个宽空字符结束);

 

11 两个相邻的仅由空格、制表符或换行符分开的字符串字面值(或宽字符串字面值),可连接成一个新字符串字面值。这使得多行书写长字符串字面值变得简单

    std::cout << "a multi-line " "string literal " "using concatenation" << std::endl;

12 C++ 支持两种初始化变量的形式:复制初始化直接初始化。复制初始化语法用等号(=),直接初始化则是把初始化式放在括号中

      int ival(1024); // direct-initialization int ival = 1024; // copy-initialization

 

你可能感兴趣的:(c++)