• 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函数

       void swap(int* a, int *b) {
      int temp = *a;  
      *a = *b;
      *b = temp;
      }
      • 错误写法一

        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[];
    • 在main函数里初始化
      int num = ;
      for(int i=; i<=; ++i) {
      for(int j=; j<=; ++j) {
      pt[num++] = Point(i, j);
      }
      }
  • 浮点数的比较

    • 浮点数在计算机中计算并不总是准确,需要引入一个极小数eps来对这种误差进行修正

      const double eps = 1e-;
      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 ) // 小于等于
05-11 19:55