zoukankan      html  css  js  c++  java
  • C++知识回顾(一)

       感觉世界都是约定好的,每门语言的第一个程序总是Hello World!但是也有一些书似乎是在追求个性,会用一些其他的,但是是Not Hello World!本人需要再学习一下C++,所以从最基础的开始。世间万物Hello World:

    1 // helloworld.cpp
    2 #include <iostream>
    3 using namespace std;
    4 
    5 int main()
    6 {
    7     cout << "Hello World!" << endl;
    8     return 0;
    9 }

      这可能是最简单一个程序了,仅仅是向屏幕打印“Hello World!”这一信息。但其中包含了很多概念:

    • 注释
    • 预处理指令
    • main()函数
    • 输入/输出流

    1.注释

      程序第一行为一行注释,以供程序员阅读,编译器会呼略。C++中有两种注释方法:

    1 //注释
    2 /*注释*/

      使用注释的主要原因:

      (1)说明用途

      解释程序代码中函数作用,包括参数意义,返回值等信息。

      (2)说明复杂代码

      对于控制台的简单程序中,代码阅读可能相对容易一些,但是在一些专业领域,代码可能复杂而深奥,如下代码:

     1 void sort(int inArray[], int inSize)
     2 {
     3     for (int i = 1; i < inSize; i++)
     4     {
     5         int element = inArray[i];
     6         int j = i - 1;
     7         while (j >= 0 && inArray[j] > element)
     8         {
     9             inArray[j + 1] = inArray[j];
    10             j--;
    11         }
    12         inArray[j + 1] = element;
    13     }          
    14 }    

      这是一个排序算法,通过添加注释可以解释内部的一些令人迷惑的代码。

      (3)传递元信息

      提供创建代码的详细信息,但不涉及代码的特定行为,如加入作者信息,创建日期等等。

    2.预处理指令

      生成一个C++程序有三个步骤。首先,代码在预处理器中运行,预处理器识别代码中的元信息。随后,代码被编译或转换为计算机可识别的目标文件。最后,通过链接变成一个应用程序。预处理命令以#开始,第一个程序中的#include <iostream>便是,意思是提取<iostream>头文件的内容给当前文件。如果不包含这个头文件,甚至无法完成输出文本的任务。

    常见的预处理指令:

    预处理指令 功能
    #include [file]

    指定的文件插入到代码中指令所在的位置

    #define [key][value] 每个制定的key被替换为指定的值

    #ifdef[key]

    #ifndef[key]

    #endif

    在ifdef块或ifndef块中的代码被有条件的

    包含或者舍弃,这取决于是否使用#define

    定义了指定的key

    #prama [xyz]

    xyz因编译器而异。如果预处理期间执行到这

    一指令,通常会显示警告或错误信息

      以下是使用预处理器指令避免重复包含:

    1 #ifndef HEADER_H_
    2 #define HEADER_H_
    3 // .........................
    4 #endif

      若编译器支持#pragma once指令,可用下面代码重写上面的代码:

    1 #pragma once
    2 // ..........................

    3.main()函数

      main()是程序的入口。其返回值是一个int类型,指示程序的最终运行状态。可以有参数,也可以有两个参数:

    int main(int argc, cha *argv[])

      其中argc给出传递给程序的参数数目,argv包含这些参数。

    4.输入/输出流

      基本的输出流是std::cout,此外还有std:cerr。<<将数据插入到流中。std::endl代表序列的结尾,当输出流遇到std::endl时,就会将所有内容输出并转移到下一行。还有\n也可以。\n是一个转义字符,是一个换行符。下面是最常见的转义字符:

    \n    换行

    \r     回车

    \t     制表符

    \\     反斜杠符

    \"     引号

      流也可以接受用户输入,最简单的是使用>>。std::cin输入流接受用户键盘输入。

    参考:

    Marc Gregoire, Nicholas A. Solter, Scott J. Kleper, C++高级编程,清华大学出版社,2012,ISBN:978-7-302-29897-7

  • 相关阅读:
    eclipse 工程没有build path
    Redis中RedisTemplate和Redisson管道的使用
    Spring多开发环境配置
    Commons Configuration之三Properties文件
    Commons Configuration之二基本特性和AbstractConfiguration
    Commons Configuration之一简介
    Commons DbUtils
    这可能是最容易入门的socket教程了
    图解leetcode —— 124. 二叉树中的最大路径和
    图解leetcode —— 395. 至少有K个重复字符的最长子串
  • 原文地址:https://www.cnblogs.com/pipinet/p/4518776.html
Copyright © 2011-2022 走看看