c/c++基础内容回顾
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++基础内容回顾的更多相关文章
- Ruby Rails学习中:Ruby内置的辅助方法,基础内容回顾补充
一. Ruby内置的辅助方法 1.打开文件:app/views/layouts/application.html.erb(演示应用的网站布局) 来咱把注意力放在圈起来的那一行: 这行代码使用 Rail ...
- python爬虫主要就是五个模块:爬虫启动入口模块,URL管理器存放已经爬虫的URL和待爬虫URL列表,html下载器,html解析器,html输出器 同时可以掌握到urllib2的使用、bs4(BeautifulSoup)页面解析器、re正则表达式、urlparse、python基础知识回顾(set集合操作)等相关内容。
本次python爬虫百步百科,里面详细分析了爬虫的步骤,对每一步代码都有详细的注释说明,可通过本案例掌握python爬虫的特点: 1.爬虫调度入口(crawler_main.py) # coding: ...
- java基础知识回顾之---java String final类普通方法
辞职了,最近一段时间在找工作,把在大二的时候学习java基础知识回顾下,拿出来跟大家分享,如果有问题,欢迎大家的指正. /* * 按照面向对象的思想对字符串进行功能分类. * ...
- C#基础知识回顾-- 反射(1)
C#基础知识回顾-- 反射(1) 反射(reflection)是一种允许用户获得类型信息的C#特性.术语“反射”源自于它的工作方式: Type对象映射它所代表的底层对象.对Type对象进行查询可以 ...
- JavaWeb开发技术基础概念回顾篇
JavaWeb开发技术基础概念回顾篇 第一章 动态网页开发技术概述 1.JSP技术:JSP是Java Server Page的缩写,指的是基于Java服务器端动态网页. 2.JSP的运行原理:当用户第 ...
- Java基础知识回顾之七 ----- 总结篇
前言 在之前Java基础知识回顾中,我们回顾了基础数据类型.修饰符和String.三大特性.集合.多线程和IO.本篇文章则对之前学过的知识进行总结.除了简单的复习之外,还会增加一些相应的理解. 基础数 ...
- python 全栈开发,Day112(内容回顾,单例模式,路由系统,stark组件)
一.内容回顾 类可否作为字典的key 初级 举例: class Foo(object): pass _registry = { Foo:123 } print(_registry) 执行输出: {&l ...
- scrapy实战1,基础知识回顾和虚拟环境准备
视频地址 https://coding.imooc.com/learn/list/92.html 一. 基础知识回顾 1. 正则表达式 1)贪婪匹配,非贪婪匹配 .*? 非贪婪 . ...
- C#学习笔记(基础知识回顾)之值类型和引用类型
一:C#把数据类型分为值类型和引用类型 1.1:从概念上来看,其区别是值类型直接存储值,而引用类型存储对值的引用. 1.2:这两种类型在内存的不同地方,值类型存储在堆栈中,而引用类型存储在托管对上.存 ...
随机推荐
- springboot 配置多数据源 good
1.首先在创建应用对象时引入autoConfig package com; import org.springframework.boot.SpringApplication; import org. ...
- WPF“天狗食月”效果
原文:WPF"天狗食月"效果 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/yangyisen0713/article/deta ...
- python中对文件、文件夹的操作
python中对文件.文件夹的操作需要涉及到os模块和shutil模块. 创建文件: 1) os.mknod("test.txt") 创建空文件 2) open(&qu ...
- WPF 走马灯 文字滚动 自定义控件
原文:WPF 走马灯 文字滚动 自定义控件 /// <summary> /// Label走马灯自定义控件 /// </summary> [ToolboxBitmap(type ...
- Android 百度地图 SDK v3.0.0 (四) 离线地图功能介绍
转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/37758097 一直认为地图应用支持离线地图非常重要啊.我等移动2G屌丝,流量不易 ...
- 使用 NodeJS + Express从GET/POST Request 取值
过去无论哪一种网站应用程式的开发语言,初学者教学中第一次会提到的起手式,八九不离十就是GET/POST Request 的取值.但是,在Node.js + Express 的世界中,仿佛人人是高手,天 ...
- QWidget继承自QPaintDevice,这样就可以直接把QWidget传入QPainter的构造函数,比如QPainter(mylabel),然后设置QWidget的长宽后直接进行作画了
比如用QLabel在主界面上画两条虚线: bool ContentWidget::eventFilter(QObject *obj, QEvent *event) { if(obj == line_l ...
- 用MVVM模式开发中遇到的零散问题总结(5)——将动态加载的可视元素保存为图片的控件,Binding刷新的时机
原文:用MVVM模式开发中遇到的零散问题总结(5)--将动态加载的可视元素保存为图片的控件,Binding刷新的时机 在项目开发中经常会遇到这样一种情况,就是需要将用户填写的信息排版到一张表单中,供打 ...
- 【已解决】Android Studio下,gradle project sync failed 错误
原文:[已解决]Android Studio下,gradle project sync failed 错误 Android studio下突然报错 gradle project sync failed ...
- Qt 制作透明背景图片与裁剪图片(很实用)
这两天想做一个五子棋游戏,想从零开始自己绘制各种图片素材,将经验心得整理如下. 制作透明背景图片: void MyPainter::DrawKit() { QImage image(30, 30, Q ...