1.1基本数据类型

1.1.1 变量的定义

  变量类型 变量名

  变量类型 变量名=初值;

注意:不能以C语言标识符作为变量名,变量名的第一个字符必须是字母或者下划线,其它位置字符必须是字母、数字、下划线。

1.1.2 变量类型

  整型  int ,long long

  浮点型 float ,double

  字符型 char

  布尔型 bool

注:布尔型在c++中可以直接使用,但在c语言中必须添加stdbool.h才能使用

 #include<stdio.h>
int main()
{
bool flag1=,flag2=true;
int a=,b=;
printf("%d %d %d\n",flag1,flag2,a==b);
return ;
}
  

1.1.3 强制类型转换

格式:(新类型名)变量名

 #include<stdio.h>
int main()
{
double r=12.56;
int a=,b=;
printf("%d\n",(int)r);
printf("%d\n",a/b);
printf("%.1f\n",(double)a/(double)b);
return ;
}

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(数组名));

 #include<stdio.h>
#include<string.h>
int main()
{
int a[]={,,,,};
//¸³³õÖµ0
memset(a,,sizeof(a));
for(int i=;i<;i++)
{
printf("%d",a[i]);
}
printf("\n");
memset(a,-,sizeof(a));
for(int i=;i<;i++)
{
printf("%d",a[i]);
}
printf("\n");
return ;
}

建议只赋值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次幂是合适的。

 #include<stdio.h>
#include<math.h>
const double eps=1e-;
#define Equ(a,b) ((fabs((a)-(b)))<(eps))
int main()
{
double db=1.23;
if(Equ(db,1.23))
{
printf("true");
}
else
printf("false");
return ;
}
#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)

最新文章

  1. WIN7 共享网络方法
  2. CSS3常用选择器(二)
  3. 互联网金融必须知道:O2O、P2P、MRD、BRD、LBS、PV、UV、KPI、MRD、VP、UED....
  4. FXForms,自动生成iOS表单
  5. mysqlroot passwd
  6. SQL Server:查询当前服务器有多少连接请求
  7. Eclipse设置UTF-8
  8. 二,WPF的布局
  9. VirtualBox 给虚拟机绑定IP
  10. bootstrap之Flick
  11. wep密钥的长度
  12. ThreadLocal源码分析(转)
  13. php获取音悦台视频
  14. ftk学习记(list篇)
  15. Java中使用LocalDate根据日期来计算年龄
  16. LinkedList 源码分析(JDK 1.8)
  17. Qt中实现启动画面
  18. 吴恩达机器学习笔记3-代价函数II(cost function)
  19. Scala学习(八)练习
  20. Oracle中exists替代in语句

热门文章

  1. thread、Task、async &amp; await
  2. Folly: Facebook Open-source Library Readme.md 和 Overview.md(感觉包含的东西并不多,还是Boost更有用)
  3. WinRAR 5.50 简体中文正式版发布(20多项改进)
  4. Mybatis 一对多 配置文件
  5. JAVASCRIPT高程笔记-------第十章 DOM对象
  6. Git 将子文件夹分离为一个新的库
  7. Qt之使用setWindowFlags方法遇到的问题(追踪进入QWidget的源码分析原因,最后用WINAPI解决问题)good
  8. 基于VUE实现的新闻后台管理系统-一
  9. 使用VC2005编译真正的静态Qt程序 good
  10. CentOS安装mysq