C/C++快速入门

  • sscanf与sprint  

    • 均在stdio.h头文件下
    • sscanf用法
    • sscanf(str, "%d", &n);    // 将str中内容以"%d"的格式写到n中 

       sprintf用法

      sprintf(str, "n = %d, db = %.2f, str2 = %s\n", n, db, str2);        //入 str 将数据按格式写

 

 

  • 指针变量作为函数参数

    • swap函数
      1 void swap(int* a, int *b) {
      2     int temp = *a;  
      3     *a = *b;
      4     *b = temp;
      5 } 

 

      • 错误写法
        void swap(int* a, int *b) {
            int* temp;            // 错在定义temp时没有初始化 
            *temp = *a;
            *a = *b;
            *b = *temp;
        } 
      • 错误写法
        void swap(int* a, int *b) {
            int temp = a;        // 地址只是副本,没法对数据产生实质性的影响 
            a = b;
            b = temp;
        }  

 

  • 结构体的初始化(构造函数)

    • 可以设置多个构造函数
      struct Point {      // 结构体
          int x, y;
          Point() {}
          Point(int _x, int _y) :x(_x), y(_y) {}
      } pt[10];
    •  在main函数里初始化
      int num = 0;
      for(int i=1; i<=3; ++i) {
          for(int j=1; j<=3; ++j) {
              pt[num++] = Point(i, j);
          }
      }

 

  • 浮点数的比较

    • 浮点数在计算机中计算并不总是准确,需要引入一个极小数eps来对这种误差进行修正
      const double eps = 1e-8;
      const double Pi = acos(-1.0);                // π 
      #define Equ(a, b) ( fbs(a-b) < eps )        // 等于 
      #define More(a, b) ( a-b > eps )            // 大于 
      #define Less(a, b) ( a-b < (-eps) )            // 小于 
      #define MoreEqu(a, b) ( a-b > (-eps) )        // 大于等于 
      #define LessEqu(a, b) ( a-b < eps )            // 小于等于 

       

 

posted @ 2018-01-02 18:52  Just_for_Myself  阅读(1222)  评论(0编辑  收藏  举报