c++总结笔记(一)
计算机可以将程序转化为二进制指令(即机器码),并由CPU执行,CPU会按照指令的顺序依次执行每个指令。
C语言特点:
- 简洁
- 高效
- 可移植
- 模块化
- 标准化
C语言的标准
- C89(C90)标准
- C99标准
- C11标准
导入
使用include导入包含库文件
数据类型

数据类型的作用:编译器预算数据分配的内存空间大小。
命令规则
规则说明:只能由数字、字母、下划线_组成;不能使用数字开头 不能使用关键字 驼峰命名
ASCII码
大小写字母差32
布尔类型
C语言没有布尔类型数据,以0代表逻辑假,非0代表逻辑真; 使用stdbool.h中的bool
基本数据类型长度

自定义的常量
#define PI 3.14
const double pi2 = 3.14;
数值存储方式
计算机底层都是存储数据都是采用二进制,但二进制也有几种,比如:原码、反码、补码。接下 来我们来看看他们之间的关系的意义作用。
原码
- 10 -> 0000 1010
- -10 -> 1000 1010
- -1 -> 1000 0001
- 1 -> 0000 0001
反码 (正数和原码相同)
负数的反码是按位取反(但符号位不变)
- 1 -> 0000 0001 -> 0000 0001
- -1 -> 1000 0001 -> 1111 1110
补码
正数的补码就是原码本身;
负数的补码就是在反码的基础上+1;
- 1 -> 0000 0001 -> 0000 0001 -> 0000 0001
- -1 -> 1000 0001 -> 1111 1110 -> 1111 1111
输出和输入
| 打印格式 | 对应数据类型 | 含义 |
| %c | char | 字符型,输入的数字按照ASCII码相应转换为对应的字符 |
| %d | int | 接受整数值并将它表示为有符号的十进制整数 |
| %f | float | 单精度浮点数 |
| %s | char * | 字符串。输出字符串中的字符直至字符串中的空字符(字符串以'\0‘结尾,这个'\0'即空字符) |
| %p | void * | 以16进制形式输出指针 |
运算符
| 运算符 | 术语 | 示例 | 结果 |
| & | 按位与运算 | 011 & 101 | 2个都为1才为1,结果为001 |
| | | 按位或运算 | 011 | 101 | 有1个为1就为1,结果为111 |
| ^ | 按位异或运算 | 011 ^ 101 | 不同的为1,结果为110 |
| ~ | 取反运算 | ~011 | 100 |
| << | 左移运算 | 1010 << 1 | 10100 |
| >> | 右移运算 | 1010 >> 1 | 0101 |
类型转换
- 转换的方法有两种:
- 自动转换(隐式转换):遵循一定的规则,由编译系统自动完成强制类型转换:把表达式的运算结果强制转换成所需的数据类型
- 类型转换的原则:
- 占用内存字节数少(值域小)的类型,向占用内存字节数多(值域大)的类型转换,以保证精度不降低。(从小到大转)
程序执行的三大流程
顺序 分支 循环
可移植的类型
为了更好的兼容不同平台,我们在使用基本上数据类型的时候会采用可移植的类型,这些类型可以确保在不同的平台下稳定的运行。
跳转关键字
- 循环和switch专属的跳转:break(不执行循环后续重复的代码退出)
- 循环专属的跳转:continue(只退出当前)
- 无条件跳转:goto
多文件编程
声明类: 声明方法用于 使用类方法调用
防止头文件重复包含:
#ifndef __SOMEFILE_H__
#define __SOMEFILE_H__// 声明语句
#endif
#pragma once
// 声明语句
实现类: 实现方法
使用类 extern 导入 声明类参数 和方法
extern int global_val;
extern void printf_val();
指针变量的定义和使用
- & 叫取地址,返回操作数的内存地址
- * 叫解引用,指操作指针所指向的变量的值
- 在定义变量时,* 号表示所声明的变量为指针类型
指针大小
- 在32位平台,所有的指针(地址)都是32位(4字节)
- 在64位平台,所有的指针(地址)都是64位(8字节)
指针步长
- 指针步长指的是通过指针进行递增或递减操作时,指针所指向的内存地址相对于当前地址的偏移量。
野指针和空指针
野指针 没用指针 只有值
空指针 有指针 没数据
函数调用
// 3种调用方法都可以
func(1); // 最简便,最常用
(&func)(2);
(*func)(3);
回调函数
- 函数指针变量做函数参数,这个函数指针变量指向的函数就是回调函数
- 回调函数可以增加函数的通用性
// 定义函数,函数指针做形参
int calc(int a, int b, int (*p)(int, int)){
// 通过函数指针变量调用函数,获取返回值
int res = p(a, b);
return res;
}
相关文章:
c++总结笔记(一)
计算机可以将程序转化为二进制指令(即机器码),并由CPU执行,CPU会按照指令的顺序依次执行每个指令。 C语言特点: 简洁高效可移植模块化标准化 C语言的标准 C89(C90)标准C99标准C11标准 导入 使用include导入包含…...
[python][gradio]chatbot控件用法
chatbot模块是Gradio中的一个组件,用于展示聊天机器人的输出,包括用户提交的消息和机器人的回复。它支持一些Markdown语法,包括粗体、斜体、代码和图片等。Chatbot模块的输入不接受用户输入,而是通过函数返回的列表来设置聊天内容…...
Sublime Text下载,安装,安装插件管理器,下载汉化插件
SublimeTest官网 © Sublime Text中文网 下载安装 一路点击安装即可 安装插件管理器 管理器官网安装 - 包控制 (packagecontrol.io) 手动安装将3 位置点击网址下载 再打开SublimeTest 点击 选择第一个Browse Packages..... 将会跳转到文件夹中 进入上一个文件夹 在进入…...
c++ ,stl经常出现的<>尖括号其实就是模板类的实例化
通过比如vector<int> 实际上是调用了类似模板template<T t>class vector{...}实例化了一个使用int的vector类来进行定义,我们可以尝试简单的做一个自己的array类 template<typename T1 ,int d2> class array1 {private:T1 *p;int size;public:ar…...
goproxy 简单介绍 及一键安装脚本
goproxy 官网 https://goproxy.cn/ GoProxy 是一项用于 Go 模块的高性能代理服务,旨在为 Go 开发人员提供更快速、更可靠的模块下载体验。它提供以下主要功能: 全球分布式代理服务器: GoProxy 在全球多个地区部署了代理服务器,例如拉斯维加…...
Day13-Python基础学习之数据分析案例
数据分析案例 data_define.py # 数据定义的类 class Record:def __init__(self, date, order_id, money, province):self.date dateself.order_id order_idself.money moneyself.province province def __str__(self):return f"{self.date}, {self.order_id}, {se…...
研究生,该学单片机还是plc。?
PLC门槛相对较低,但是在深入学习和应用时,仍然有很高的技术要求。我这里有一套单片机入门教程,不仅包含了详细的视频 讲解,项目实战。如果你渴望学习单片机,不妨点个关注,给个评论222,私信22&am…...
【Java】导出Mysql表表结构与注释数据字典
需求: 把mysql中所有表的字段名、数据类型、长度、注释整理成csv,做成数据字典。 import java.io.IOException; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import ja…...
第07-2章 TCP/IP模型
7.7 TCP/IP模型详解 7.7.1 简介 应用层的PDU>APDU(Application PDU) 表示层的PDU>PPDU(Presentation PDU) 会话层的PDU>SPDU(Session PDU) 7.7.2 TCP/IP协议体系 (1)TCP…...
【办公类-21-15】 20240410三级育婴师 712道单选题(题目与答案合并word)
作品展示 背景需求: 前文将APP题库里的育婴师题目下载到EXCEL,并进行手动整理 【办公类-21-13】 2024045三级育婴师 721道单选题 UIBOT下载整理-CSDN博客文章浏览阅读451次,点赞10次,收藏3次。【办公类-21-13】 2024045三级育婴…...
Vue3+Vant开发:登录功能
🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开心好久好久😎 📚系列专栏:Java全栈,…...
Linux程序调试优化(1)——内存占用详解及优化思路
文章目录 1.free查看总体的内存占用2./proc/$PID/status 查看某进程状态 linux开发最重要的两个参数,分别是内存以及CPU使用率,若内存出现严重不足,则在需要使用内存时,可能出现申请不到的情况,导致 OOM,L…...
高效解决Visual Studio Code中文乱码问题
文章目录 问题解决步骤 问题 Visual Studio Code新建一个文件编码方式总是默认GBK,如果我不修改成默认UTF-8,那么每次运行,如果有中文需要输出就会乱码! 解决步骤 之后我会持续更新,如果喜欢我的文章,请记…...
springboot接口提高查询速度方法
接口想要提高查询速度,需要减少查询数据库的次数,需要把循环里面的查询提出来一次性查询完毕,然后通过java代码来获取响应的值。如下所示: List<OrderInfoHtVO> orderInfoList orderInfoService.getOrderInfoHtlist(query…...
如何在苹果手机上安装iOS应用的.ipa文件?
哈喽,大家好呀,淼淼又来和大家见面啦,如今移动应用市场不断的发展,许多开发者小伙伴们都选择将他们的应用发布到苹果App Store上,但是,有时候他们可能希望通过直接分享IPA文件来分发他们的App,那…...
IDEA pom.xml显示灰色并被划线
在使用 IDEA 进行开发的过程中,有时候会遇到 pom.xml 显示灰色并被划线的情况,如下图: 这一般是因为该文件被 Maven 忽略导致的,可以进行如下操作恢复: 设置保存后,可以看到 pom.xml 恢复了正常:…...
玄子Share-使用 Pycharm 执行 Shell 脚本
玄子Share-使用 Pycharm 执行 Shell 脚本 Why? 为什么我要使用 Pycharm 执行 Shell 脚本呢,我直接使用 Linux 不行吗? 使用 Pycharm 执行 Shell 脚本的好处 我们的宿主机都是 WIndows 平台,若想编译 Shell 脚本,我…...
如何让Nrf connect、EFR connect直接显示特征值数据及其单位
效果如图:app直接显示了我的温度,并且有两位小数,还有温度单位。这是怎么做到的呢? 这次我们仍以TLS8258为例,当然如果是其他蓝牙芯片,配置方式也是大差不差,规则一样的。 #define GATT_CHARA…...
python笔记
Vim 修改文件格式 unix|dos vim fileName :set ff //显示出文件格式类型 :set ffunix //设置成unix格式 :set ffdos //windows文件格式python *和**的区别 将可变关键字打包成不可变的元组 def func(*args): print(args) func(1, 2, 3) # 输出:(1, 2, 3)…...
Java编译期注解处理器AbstractProcessor使用
我们接触的注解主要分为以下两类 运行时注解:通过反射在运行时动态处理注解的逻辑编译时注解:通过注解处理器在编译期动态处理相关逻辑 编译期注解我们常用的有Lombok,在class文件中自动生成get和set方法 解编译期处理流程最关键的一个类就…...
智能客服意图识别实战:基于AI辅助开发的架构设计与避坑指南
在智能客服系统中,意图识别是决定对话能否顺畅进行的关键。简单来说,它就像客服的“耳朵”和“大脑”,需要准确听懂用户五花八门的问法,并快速判断出用户到底想干什么——是查询订单、投诉问题,还是咨询产品。然而&…...
ST25DV64KC动态NFC标签Arduino驱动库详解
1. 项目概述SparkFun ST25DV64KC Arduino Library 是面向 ST25DV64KC 动态 NFC/RFID 标签的专用驱动库,专为 Qwiic 生态系统中的 SparkFun Qwiic Dynamic RFID Tag(型号 SPX-19035)设计。该库并非通用 NFC 协议栈,而是深度适配 ST…...
【广度优先搜索】FloodFill算法: 图像渲染,岛屿数量,岛屿的最大面积,被围绕的区域
文章目录1. 图像渲染(LC733)题目描述解题思路代码实现2. 岛屿数量(LC200)题目描述代码实现3. 岛屿的最大面积(LC695)题目描述代码实现4. 被围绕的区域(LC130)题目描述解题思路代码实…...
伏特台风(Volt Typhoon):针对关键基础设施的无文件攻击与潜伏技术深度剖析
前言 技术背景:在现代网络攻击与防御(Cybersecurity)的宏大叙事中,高级持续性威胁(APT)代表了最高级别的对抗。而“伏特台风”(Volt Typhoon)组织所采用的**无文件攻击(F…...
QMCDecode终极指南:3分钟解锁QQ音乐加密文件,让音乐真正属于你!
QMCDecode终极指南:3分钟解锁QQ音乐加密文件,让音乐真正属于你! 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac,qmc0,qmc3转mp3, mflac,mflac0等转flac),仅支持macOS,可自动识别到…...
OpenClaw:打破AI空谈,打造本地可控的智能执行助手
在AI工具层出不穷的当下,多数大模型仍停留在“对话生成”层面,只能输出文字却无法落地执行任务,隐私泄露风险也让不少用户望而却步。2026年走红的开源项目OpenClaw(俗称“龙虾”),彻底颠覆了这一局面&#…...
3大突破:让中医药AI技术走进基层医疗
3大突破:让中医药AI技术走进基层医疗 【免费下载链接】Awesome-Chinese-LLM 整理开源的中文大语言模型,以规模较小、可私有化部署、训练成本较低的模型为主,包括底座模型,垂直领域微调及应用,数据集与教程等。 项目地…...
如何用AnythingLLM构建企业级知识库:从零到一的完整指南
如何用AnythingLLM构建企业级知识库:从零到一的完整指南 【免费下载链接】anything-llm 这是一个全栈应用程序,可以将任何文档、资源(如网址链接、音频、视频)或内容片段转换为上下文,以便任何大语言模型(L…...
COMSOL中BIC多极解分(多极展开)复现:周期性结构通用解法探索
COMSOL中BIC的多极解分(多极展开)复现: 周期性结构通用,公式内嵌的comsol中,直接不需要matlab即可得到对应极子和三个方向的散射截面。 下图是以四聚体周期性结构为例,仿真复现结果和文献相吻合。 内含透射…...
探索Comsol弱形式求解三维光子晶体能带
Comsol弱形式求解三维光子晶体能带。在光子学领域,三维光子晶体能带的研究至关重要。而Comsol作为一款强大的多物理场仿真软件,其弱形式求解方法为我们探索三维光子晶体能带提供了有效途径。 光子晶体与能带理论基础 光子晶体是一种具有周期性介电结构的…...
