c/c++基础内容回顾
1.1基本数据类型
1.1.1 变量的定义
变量类型 变量名
变量类型 变量名=初值;
注意:不能以C语言标识符作为变量名,变量名的第一个字符必须是字母或者下划线,其它位置字符必须是字母、数字、下划线。
1.1.2 变量类型
整型 int ,long long
浮点型 float ,double
字符型 char
布尔型 bool
注:布尔型在c++中可以直接使用,但在c语言中必须添加stdbool.h才能使用
1 #include<stdio.h> 2 int main() 3 { 4 bool flag1=0,flag2=true; 5 int a=1,b=1; 6 printf("%d %d %d\n",flag1,flag2,a==b); 7 return 0; 8 }
0 1 1
1.1.3 强制类型转换
格式:(新类型名)变量名
1 #include<stdio.h> 2 int main() 3 { 4 double r=12.56; 5 int a=3,b=5; 6 printf("%d\n",(int)r); 7 printf("%d\n",a/b); 8 printf("%.1f\n",(double)a/(double)b); 9 return 0; 10 }
12 0 0.6
1.1.4 符号常量和const常量
#define 标识符 常量
#define 标识符 任何语句或片段
#define ADD(a,b) ((a)+(b))
const 数据类型 变量名=常量
注意:确定值后便无法改变
1.1.5 运算符
算术运算符
+ - * / % ++ --
关系运算符
<,>,<=,>=,==,!=,
逻辑运算符
&&,||,!,(与、或、非)
条件运算符(三目运算符)
(a>b?a:b)
位运算符
<< 左移 整数a按二进制位左移x位 a<<x
>>右移 整数a按二进制位右移x位 a>>x
&位与 整数a与b按二进制对齐,按位进行与运算 a&b(除了11得1,其它均为0)
| 位或 整数a与b按二进制对齐,按位进行或运算 a|b(除了00得0,其它均为1)
^位异或 整数a与b按二进制对齐,按位进行异或运算 a^b(相同为0,不同为1)
~位取反 整数a的二进制位的每一位进行0变1,1变0的操作
1.2 常用的math函数
需要头文件math.h
fabs(double x)取绝对值函数
floor(double x)下取整
ceil(double x)上取整
pow(double r,double p)返回r的p次幂
sqrt(double x)返回x的算术平方根
log(x)返回以e为底的对数
sin(double x),cos(double x),tan(double x) x的正弦,余弦,正切
asin(double x),acos(double x),atan(double x),x的反正弦,反余弦,反正切
round(double x)对x进行四舍五入
1.3 memset——对数组整体进行赋值
memset(数组名,值,sizeof(数组名));
1 #include<stdio.h> 2 #include<string.h> 3 int main() 4 { 5 int a[5]={1,2,3,4,5}; 6 //¸³³õÖµ0 7 memset(a,0,sizeof(a)); 8 for(int i=0;i<5;i++) 9 { 10 printf("%d",a[i]); 11 } 12 printf("\n"); 13 memset(a,-1,sizeof(a)); 14 for(int i=0;i<5;i++) 15 { 16 printf("%d",a[i]); 17 } 18 printf("\n"); 19 return 0; 20 }
建议只赋值0或-1
1.4 string.h 头文件
strlen(字符数组)获取字符串长度(得到字符数组中第一个\0前的字符的个数)
strcmp(字符数组1,字符数组2)比较两个字符串的大小
strcpy(字符数组1,字符数组2) 将字符串2的内容复制给字符串1
strcat(字符数组1,字符数组2)将字符串2接到字符串1后面
1.5 全局变量和局部变量
1.6 指针
1.7 结构体
结构体的定义
struct Name{
//一些基本的数据结构类型或自定义的变量类型
}
1.8浮点数的比较
由于计算机中采用有限位的二进制编码,因此浮点数在计算机中的存储并不总是准确的。在经过大量计算后,一个浮点型的数3.14就可能存储成3.140000000000001.或者3.13999999999
进而造成误差,于是要引入一个极小数eps来对这种误差进行修正。
eps取10的-8次幂是合适的。
1 #include<stdio.h> 2 #include<math.h> 3 const double eps=1e-8; 4 #define Equ(a,b) ((fabs((a)-(b)))<(eps)) 5 int main() 6 { 7 double db=1.23; 8 if(Equ(db,1.23)) 9 { 10 printf("true"); 11 } 12 else 13 printf("false"); 14 return 0; 15 }
#define Equ(a,b) ((fabs((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))
#define Pi=acos(-1.0)