当前位置: 首页 > news >正文

3.5知识点复习

extern:

表示声明。 没有内存空间。 不能提升。

const:

限定一个变量为只读变量。

volatile:

防止编译器优化代码。

volatile int flg = 0;

register:

定义一个寄存器变量。没有内存地址。

register int a = 10;

字符串:

C语言中,用双引号引着的一串字符,称之为字符串。一定有一个结束标记'\0'

char ch = ‘A’; 一个字节

"abc" --> 'a''b''c''\0'

‘a’ 不等价 “a”('a''\0')

printf函数:

%s:打印字符串, 挨着从字符串的第一个字符开始打印,打印到'\0'结束。

%d:打印整数

%c:打印字符

%x:打印16进制数

%u:打印无符号

%m.n: 打印实型时用到,一共有 m 位(整数、小数、小数点),n位小数。

%0m.nf: 其中 f:表示打印实型,一共有 m 位(整数、小数、小数点),n位小数。 0:表示不足 m 位时,用0凑够m位。

%%: 显示一个%。 转义字符'\' 对 % 转义无效。

%Ns:显示N个字符的字符串。不足N用空格向左填充。

%0Ns:显示N个字符的字符串。不足N用0向左填充。

%-Ns:显示N个字符的字符串。不足N用空格向右填充。

putchar函数:

输出一个 字符 到屏幕。

直接使用 ASCII 码。

不能输出字符串。

‘abc’既不是一个有效字符,也不是一个有效字符串。

常用putchar('\n');来打印换行。

printf("\n");

scanf函数:

从键盘接收用户输入。

1. 接收 整数 %d

int a, b, c; 创建变量空间, 等待接收用户输入。

scanf("%d %d %d", &a, &b, &c);

2. 接收 字符 %c

char a, b, c;

scanf("%c %c %c", &a, &b, &c);

3. 接收 字符串 %s

char str[10];// 定义一个数组,用来接收用户输入的 字符串。

scanf("%s", str);// 变量名要取地址传递给 scanf, 数组名本身表示地址,不用 & 符。

接收字符串:

1) scanf 具有安全隐患。如果存储空间不足,数据能存储到内存中,但不被保护。【空间不足不要使用】

2) scanf 函数接收字符串时, 碰到 空格 和 换行 会自动终止。不能使用 scanf 的 %s 接收带有空格的字符串。

将 #define _CRT_SECURE_NO_WARNINGS 添加到程序 第一行。 解决scanf 4996错误

getchar()函数:

从键盘获取用户输入的 一个字符。

返回该获取的字符的 ASCII 码。

算数运算符:

先 * / % 后 + -

除法运算后,得到的结果赋值给整型变量时,取整数部分。

除0 :错误操作。不允许。

对0取余:错误操作。不允许。

不允许对小数取余。余数不能是 小数。 35 % 3.4;

对负数取余,结果为余数的绝对值。10 % -3; --》 1

++ 和 --:

前缀自增、自减:

先自增/自减, 在取值。

int a = 10;

++a;// a = a+1;

后缀自增、自减:

int a = 10;

a++;// a = a+1;

先取值, 再自增/自减。

赋值运算:

int a = 5;

a += 10; // a = a+10;

a -= 30; // a = a-30;

a %= 5; // a = a % 5;

比较运算符:

== 判等。

!= 不等于.

< 小于

<= 小于等于

> 大于

>= 大于等于

13 < var < 16; ==> var > 13 && var < 16;

逻辑运算符:

0为假,非0为真。(1)

逻辑非:!

非真为假, 非假为真。

逻辑与: &&(并且)

同真为真,其余为假。

逻辑或:|| (或)

有真为真。同假为假。

运算符优先级:

[]() > ++ -- (后缀高于前缀) (强转) sizeof > 算数运算(先乘除取余,后加减)>

比较运算 > 逻辑运算 > 三目运算(条件运算)> 赋值运算 > 逗号运算

三目运算符: ? :

表达式1 ? 表达式2 : 表达式3

表达式1 是一个判别表达式。 如果为真。整个三目运算,取值表达式2。

如果为假。整个三目运算,取值表达式3。

默认结合性。自右向左。

类型转换:

隐式类型转换:

由编译器自动完成。

由赋值产生的类型转换。 小--》大 没问题。 大 --》 小 有可能发生数据丢失。

int r = 3;

float s = 3.14 * r * r;

321:256 128 64 32 16 8 4 2 1

1 0 1 0 0 0 0 0 1

char ch = 0 1 0 0 0 0 0 1

强制类型转换:

语法:(目标类型)带转换变量

(目标类型)带转换表达式

大多数用于函数调用期间,实参给形参传值。

if分支语句:匹配一个范围.属于模糊匹配.

if (判别表达式1)

{

判别表达式为真,执行代码。

}

else if(判别表达式2)

{

判别表达式1为假,并且判别表达式2,执行代码。

}

else if(判别表达式3)

{

判别表达式1为假,判别表达式2为假,判别表达式3, 执行代码。

}

。。。

else

{

以上所有判断表达式都为假, 执行代码。

}

练习:三只小猪称体重:

屏幕输入三只小猪的重量。借助if分支语句,找出最重的小猪重量。

switch 分支:精确匹配.

switch(判别表达式)

{

case 1:

执行语句1;

break;// 防止case穿透

case 2:

执行语句2;

break;

case 3:

执行语句3;

break;

...

case N:

执行语句N;

break;

default:

其他情况的统一处理;

break;

}

case 穿透:

在一个case分支中如果,没有break;那么它会向下继续执行下一个case分支.

while循环:

while(条件判别表达式)

{

循环体.

}

练习:敲7:1--100数数, 逢7和7的倍数,敲桌子。

7的倍数:num % 7 == 0

个位含7:num % 10 == 7

十位含7:num / 10 == 7

do while 循环:

无论如何先执行循环体一次。然后在判断是否继续循环。

do {

循环体

} while (条件判别表达式);

练习:求水仙花数。 一个三位数。各个位上的数字的立方和等于本数字。 234 861

100 -- 999

int num = 100;

个位数: int a = num % 10; a*a*a;

十位数: int b = num / 10 % 10;

百位数: int c = num / 100;

相关文章:

3.5知识点复习

extern&#xff1a;表示声明。 没有内存空间。 不能提升。const&#xff1a;限定一个变量为只读变量。volatile&#xff1a;防止编译器优化代码。volatile int flg 0; register&#xff1a;定义一个寄存器变量。没有内存地址。register int a 10;字符串&#xff1a;C语言中&a…...

湖南中创教育PMP分享项目经理有哪些优势?

项目经理拥有超强的计划能力&#xff1b;具备大局意识&#xff1b;沟通能力特别强&#xff1b;具备更大的灵活性和反应能力以及总结汇报能力 1、超强的计划能力 项目经理几乎无时无刻都在做计划&#xff0c;因此也就更擅长做计划。 项目管理要抓重点&#xff0c;有主次地处理…...

LeetCode:27. 移除元素

给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数值等于 val 的元素&#xff0c;并返回移除后数组的新长度。 不要使用额外的数组空间&#xff0c;你必须仅使用 O(1) 额外空间并 原地 修改输入数组。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面…...

麻雀算法SSA优化LSTM长短期记忆网络实现分类算法

1、摘要 本文主要讲解&#xff1a;麻雀算法SSA优化LSTM长短期记忆网络实现分类算法 主要思路&#xff1a; 准备一份分类数据&#xff0c;数据介绍在第二章准备好麻雀算法SSA&#xff0c;要用随机数据跑起来用lstm把分类数据跑起来将lstm的超参数交给SSA去优化优化完的最优参数…...

哈希表题目:数组中的 k-diff 数对

文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析题目 标题和出处 标题&#xff1a;数组中的 k-diff 数对 出处&#xff1a;532. 数组中的 k-diff 数对 难度 4 级 题目描述 要求 给定一个整数数组 nums\texttt{nums}nums 和一个整数 k…...

SAP ERP系统PP模块计划策略2050详解

SAP/ERP系统中面向订单生产的计划策略主要有20和50两个策略&#xff0c;这两个策略都是面向订单生产的计划策略&#xff0c;也是离散制造行业应用比较广泛的策略。它们之间最大差异就是在于20策略完全是由订单驱动&#xff0c;而50策略是预测加订单驱动&#xff0c;本文主要介绍…...

TIA博途中将硬件目录更改为中文的具体方法演示

TIA博途中将硬件目录更改为中文的具体方法演示 基本步骤可参考如下: 第一步: 第二步: 具体的操作演示: 如下图所示,在所示的目录中找到zh-chs文件夹,删除或修改文件夹的名称均可,这里建议大家修改文件夹的名称,防止以后需要恢复成英文目录, 如下...

【多线程操作】线程池模拟实现

目录 一.线程池的作用 二.线程池的模拟实现 1.线程模块&#xff08;Thread.hpp&#xff09;&#xff1a; 2.线程锁模块&#xff08;LockGuard.hpp&#xff09;&#xff1a; 3.任务模块&#xff08;Task.hpp&#xff09; 4.线程池核心&#xff08;ThreadPool.hpp&#xff…...

HBase---Hbase安装(单机版)

Hbase安装单机版 文章目录Hbase安装单机版Master/Slave架构安装步骤配置Hbase1.上传压缩包解压更名修改hbase-env.sh修改hbase-site.xml配置HBase环境变量配置Zookeeper复制配置文件修改zoo.cfg配置文件修改myid配置Zookeeper环境变量刷信息配置文件启动hbase步骤hbase shellMa…...

启动项管理工具Autoruns使用实验(20)

实验目的 &#xff08;1&#xff09;了解注册表的相关知识&#xff1b; &#xff08;2&#xff09;了解程序在开机过程中的自启动&#xff1b; &#xff08;3&#xff09;掌握Autoruns在注册表和启动项方面的功能&#xff1b;预备知识 注册表是windows操作系统中的一个核心数据…...

BFD单臂回声实验详解

13.1.1BFD概念 BFD提供了一个通用的、标准化的、介质无关的、协议无关的快速故障检测机制,有以下两大优点: 对相邻转发引擎之间的通道提供轻负荷、快速故障检测。 用单一的机制对任何介质、任何协议层进行实时检测。 BFD是一个简单的“Hello”协议。两个系统之间建立BFD会…...

详解JAVA类加载器

目录 1.概述 2.双亲委派 3.ServiceClassLoader 4.URLClassLoader 5.加载冲突 1.概述 概念&#xff1a; 类加载器&#xff08;Class Loader&#xff09;是Java虚拟机&#xff08;JVM&#xff09;的一个重要组件&#xff0c;负责加载Java类到内存中并使其可以被JVM执行。类…...

记录一些常用C标准库函数,以及Linux系统调用函数的作用(不断更新)

C标准库函数 perror() 函数 作用&#xff1a;perror函数是C标准库中的一种函数&#xff0c;用于在STDERR&#xff08;标准错误输出流&#xff09;中输出给定的错误信息字符串。它不属于Linux系统调用函数。 具体使用方法&#xff1a;perror("调用的函数名") 所需…...

RK3568平台开发系列讲解(显示篇)DRM的atomic接口

🚀返回专栏总目录 文章目录 一、Property二、Standard Properties三、代码案例沉淀、分享、成长,让自己和他人都能有所收获!😄 📢目前DRM主要推荐使用的是 Atomic(原子的) 接口。 一、Property Property(属性)—– Atomic操作必须依赖的基本元素 Property把前面的…...

2022年MathorCup数学建模C题自动泊车问题解题全过程文档加程序

2022年第十二届MathorCup高校数学建模 C题 自动泊车问题 原题再现 自动泊车是自动驾驶技术中落地最多的场景之一&#xff0c;自动泊车指在停车场内实现汽车的自动泊车入位过程&#xff0c;在停车空间有限的大城市&#xff0c;是一个比较实用的功能&#xff0c;减少了驾驶员将…...

【需求响应】基于数据驱动的需求响应优化及预测研究(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密…...

Bellman-ford和SPFA算法

目录 一、前言 二、Bellman-ford算法 1、算法思想 2、算法复杂度 3、判断负圈 4、出差&#xff08;2022第十三届国赛&#xff0c;lanqiaoOJ题号2194&#xff09; 三、SPFA算法&#xff1a;改进的Bellman-Ford 1、随机数据下的最短路问题&#xff08;lanqiaoOJ题号1366&…...

假如你知道这样的MySQL

数据库三范式是什么? 第一范式&#xff08;1NF&#xff09;&#xff1a;字段具有原子性,不可再分。(所有关系型数据库系 统都满足第一范式数据库表中的字段都是单一属性的&#xff0c;不可再分)第二范式&#xff08;2NF&#xff09;是在第一范式&#xff08;1NF&#xff09;的…...

SpringBoot笔记(一)入门使用

一、为什么用SpringBootSpringBoot优点创建独立Spring应用内嵌web服务器自动starter依赖&#xff0c;简化构建配置自动配置Spring以及第三方功能提供生产级别的监控、健康检查及外部化配置无代码生成、无需编写XMLSpringBoot缺点人称版本帝&#xff0c;迭代快&#xff0c;需要时…...

C++20 协程体验

1 介绍协程是比线程更加轻量级并发编程方式&#xff0c;CPU资源在用户态进行切换,CPU切换信息在用户态保存。协程完成异步的调用流程&#xff0c;并对用户展示出同步的使用方式。协程的调度由应用层决定&#xff0c;所以不同的实现会有不同的调度方式&#xff0c;调度策略比较灵…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

【2025年】解决Burpsuite抓不到https包的问题

环境&#xff1a;windows11 burpsuite:2025.5 在抓取https网站时&#xff0c;burpsuite抓取不到https数据包&#xff0c;只显示&#xff1a; 解决该问题只需如下三个步骤&#xff1a; 1、浏览器中访问 http://burp 2、下载 CA certificate 证书 3、在设置--隐私与安全--…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...