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 }
- swap函数
-
-
- 错误写法一
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 ) // 小于等于
- 浮点数在计算机中计算并不总是准确,需要引入一个极小数eps来对这种误差进行修正