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)

c/c++基础内容回顾的更多相关文章

  1. Ruby Rails学习中:Ruby内置的辅助方法,基础内容回顾补充

    一. Ruby内置的辅助方法 1.打开文件:app/views/layouts/application.html.erb(演示应用的网站布局) 来咱把注意力放在圈起来的那一行: 这行代码使用 Rail ...

  2. python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。

    本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...

  3. java基础知识回顾之---java String final类普通方法

    辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /*     * 按照面向对象的思想对字符串进行功能分类.     *      ...

  4. C#基础知识回顾-- 反射(1)

    C#基础知识回顾-- 反射(1)   反射(reflection)是一种允许用户获得类型信息的C#特性.术语“反射”源自于它的工作方式: Type对象映射它所代表的底层对象.对Type对象进行查询可以 ...

  5. JavaWeb开发技术基础概念回顾篇

    JavaWeb开发技术基础概念回顾篇 第一章 动态网页开发技术概述 1.JSP技术:JSP是Java Server Page的缩写,指的是基于Java服务器端动态网页. 2.JSP的运行原理:当用户第 ...

  6. Java基础知识回顾之七 ----- 总结篇

    前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...

  7. python 全栈开发,Day112(内容回顾,单例模式,路由系统,stark组件)

    一.内容回顾 类可否作为字典的key 初级 举例: class Foo(object): pass _registry = { Foo:123 } print(_registry) 执行输出: {&l ...

  8. scrapy实战1,基础知识回顾和虚拟环境准备

        视频地址 https://coding.imooc.com/learn/list/92.html   一. 基础知识回顾     1. 正则表达式 1)贪婪匹配,非贪婪匹配 .*? 非贪婪 . ...

  9. C#学习笔记(基础知识回顾)之值类型和引用类型

    一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...

随机推荐

  1. python 两个链表的第一个公共结点

    题目描述 输入两个链表,找出它们的第一个公共结点.   看到这道题的时候,很多人的第一反应就是采用蛮力的方法:在第一个链表上顺序遍历每个节点,每遍历到一个节点的时候,在第二个链表上顺序遍历每个节点.如 ...

  2. 不能进入String.class调试

    Window --> Preferences --> Java --> Compiler --> Classfile Generation: "add line nu ...

  3. EPI_H/EPI_V(边缘保持指数,matlab 矢量化编程)

    EPI: edge preservation index,衡量对原始图像的操作(目标图像)对图像边缘的保持能力. EPI_H:horizontal ,水平方向: EPI_V:vertical,垂直方向 ...

  4. java堆 (转)

     Java栈和堆 ----这两个概念未知很长一段时间,终于找到了一个很好的文本.使用和共享 1. 堆(stack)堆(heap)他们是Java使用Ram本地存储的数据. 与C++不同,Java主动管理 ...

  5. c# 守护进程,WPF程序自守护

    原文:c# 守护进程,WPF程序自守护 版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/lwwl12/article/details/79035246 如何 ...

  6. SVN如何迁徙到Git

    由于一直都是采用SVN作为源码管理,转到Git不能从头开始吧~~下面就具体说说如何将SVN已有的项目工程迁徙到Git上面 步骤 (1) 安装Git客户端程序(2) 将SVN上面的工程通过Git克隆到本 ...

  7. 反编译 war 包成传统项目的方法

    需求 项目老大让外包做了官网,不甚满意,想自己搞搞,遂叫我反编译他们发过来的 war 包. 方法 第一步:解压 war 包其实就是 zip 压缩包,用 zip 解压. 第二步:反编译 查看 war 包 ...

  8. aspx页面@Page指令解析

    @Page指令位于每个ASP.NET页面的顶部,告诉ASP.NET这个具体页面使用什么属性,以及该页面继承的用户控件.ASP.NET页面@Page指令属性有:AspCompat.Async.Async ...

  9. 原生Js监听普通dom尺寸变化

    原生Js监听普通dom尺寸变化 具体做法有以下几种: 初始化项目后,轮询,反复查看 dom 尺寸是否变化,这种一听就感觉不好,开销太大. 监听元素的滚动事件,在 目标 dom 里面包裹一个同等大小的 ...

  10. WinForm TreeView单击,但是获取的是上一次点击选中的节点

    /// <summary> /// MouseDown是鼠标按下事件发生在你鼠标单击事件之前,你单击鼠标发生了两个动作,一是鼠标按下二是鼠标抬起.执行之后,就会把SelectedNode转 ...