C复习-语句
参考: 里科《C和指针》
语句
C没有bool,是用整型代替的。因此if(expression)中,expression只要是可以产生整型结果即可,且0表示假,非0表示真。
如果有只靠缩进没有{}的else语句,会自动匹配离它最近的、不完整的if语句。
while
int num = 0;
/*
** Get the numbers, stopping at eof or when a number is < 0.
*/
while( num < max && scanf( "%d", &columns[num] ) == 1&& columns[num] >= 0 )num += 1;
// 注意:scanf函数的标量参数前需要添加&
do while
dostatement
while( expression );
单独一个分号是空语句。
goto尽可能不用。用的话需要保证标签(标识符+冒号)唯一
while( exp1 ) {while( exp2 ) {while( exp3 ) {if ( exp4 )goto quit;}}
}
quit: ;
/ 只有两个操作数都是整数时才执行整除,否则是浮点数除法
有符号数可能存在算术右移的情况,即空缺位由符号位填充(以保持符号不变),到底是采用算术右移还是逻辑右移(空缺位填0)是由编译器决定的,因此该操作的引入可能导致代码不可移植。
+=和+的区别在于,前者的左操作数只求值一次,因此应该尽量使用复合赋值符
++a = 10;为什么是错的?
因为++的结果是a的拷贝,是值,所以不能给值赋值。
编译器只要不违背优先级和结合性原则,就可以自由决定复杂表达式的求值顺序,如果表达式的结果依赖于求值的顺序,那么它本质上就是不可移植的。
因为优先级决定的是相邻操作符的执行顺序,结合性是左右顺序。比如 a * b + c * d + e * f 中,虽然乘法比加法优先,但是是先计算 a * b 还是先计算 c * d并没有规定。
-
位运算
1)将指定的位置设置为1
value |= 1 << bit_number;2)将指定位置清0
value &= ~ ( 1 << bit_number );3)计算参数值中1的位的个数
int count_one_bits( unsigned value ) {int ones;for (ones = 0; value != 0; value >>= 1) {if (value & 1)ones++;}return ones; }
条件操作符
if ( a > 5 ) b[ 2 * c + d( e / 5) ] = 3;
elseb[ 2 * c + d( e / 5) ] = -20;// 改成
b[ 2 * c + d( e / 5) ] = a > 5 ? 3 : -20;
逗号操作符:从左向右逐个求值,整个逗号表达式的值就是最后那个表达式的值。使用场景如下,当a需要经过前两个语句计算出结果,再进行判断时,就可以使用逗号操作符。不过如果不能提升编程效率或者无法保证正确,则不要使用。
while( a = get_value(), count_value( a ), a > 0 ) {}
也可以写成
while( count_value( get_value() ), a > 0 ) {}
隐式类型转换
C的整型算术运算总是以default类型的精度来进行的,所以下面的char(还有short)在使用之前会被转换为int,这个称为整型提升(integral Promotion),b和c会变成int,加完得到结果,截短再存到a中。
char a, b, c;
...
a = b + c;
相关文章:
C复习-语句
参考: 里科《C和指针》 语句 C没有bool,是用整型代替的。因此if(expression)中,expression只要是可以产生整型结果即可,且0表示假,非0表示真。 如果有只靠缩进没有{}的else语句,会自动匹配离它最近的、不…...
[Python进阶] 操纵键盘:PyAutoGUI
6.5 操纵键盘:PyAutoGUI 6.5.1 keyDown、keyUp 按下或弹起某个按键。在按下时不会释放。 参数: key(str): 要按下的键。有效的名称列在KEYBOARD_KEYS。 logScreenshot:是否要截图并保存在当前文件夹下。 import pyautoguipyautogui.keyDown(f) # 模拟…...
jdbc快速开始
文章目录 快速开始参考文献 jdbc 就是使用java语言操作关系型数据库的一套api jdbc本质: 官方(sun公司)定义的一套操作所有关系型数据库的规则,就是接口各个数据库厂商去实现这套接口,提供数据库驱动jar包我们可以使用这套接口编程ÿ…...
C语言中static关键字用法
C语言中static关键字用法 2021年7月28日席锦 static关键字在c语言中比较常用,使用恰当能够大大提高程序的模块化特性,有利于扩展和维护。但是对于c语言初学者,static由于使用灵活,并不容易掌握。 变量 1.局部变量 普通局部变量是再…...
STM32-LCD液晶显示
LCD液晶显示 针对野火指南者配套资料:3.2寸 LCD电阻屏,屏幕里自带ILI9341液晶控制器芯片,该控制器芯片中存在GRAM(即显存)。该液晶控制器使用8080接口与单片机通讯,液晶面板引出来的FPC信号线为8080接口&am…...
GraphQL 查询:一个全面指南
GraphQL GraphQL 是一种 API 查询语言和运行时,用于使用现有数据完成这些查询。它为您的 API 中的数据提供了完整且易于理解的描述,让客户能够准确地询问他们需要什么,更容易随着时间的推移发展 API,并启用强大的开发人员工具。 …...
快速自动化处理JavaScript渲染页面的方法
目录 一、使用无头浏览器 二、使用JavaScript渲染引擎 三、使用前端框架工具 随着互联网技术的不断发展,JavaScript已经成为Web开发中不可或缺的一部分。然而,在自动化处理JavaScript渲染页面方面,却常常让开发者感到头疼。本文将介绍一些快…...
[计算机提升] 系统及用户操作
1.4 系统及用户操作 1.4.1 系统操作 1.4.1.1 开机、关机、重启 在Windows系统中,开机(Power On),关机(Shutdown)和重启(Restart)是指计算机的不同电源控制操作。 开机:…...
Linux篇 四、Linux修改用户名
Linux系列文章目录 一、香橙派Zero2设置开机连接wifi 二、香橙派Zero2获取Linux SDK源码 三、香橙派Zero2搭建Qt环境 文章目录 Linux系列文章目录前言一、更改用户名准备二、修改用户名总结 前言 想要把Ubuntu的普通用户名修改成自己想要的 一、更改用户名准备 LubanCat 镜像…...
【Element-plus】如何让滚动条永远在最底部(支持在线演示)
如何让滚动条永远在最底部 一、适用场景二、实现思路三、效果图四、在线演示五、完整代码 一、适用场景 在某些场景下,你可能希望滚动条保持在最底部,以确保用户始终看到最新的内容或信息。如:在实时聊天应用程序中,当新消息到达…...
解决方案-LBS用户位置Redis-GEO附近人/店铺
附近人 windows安装附近人列表功能mysqlredis GEO CNNVD-201511-230 未授权访问python 多线程 redis大端模式与小端模式IP地址的不同表现形式1.字符串表现形式2. 整数表现形式3.大小端模式下的IP地址 0x01 进入python正题Python的socket库1.socket.socket(family,type)2.socket…...
springboot+html实现简单注册登录
前端: register.html <!DOCTYPE html> <html lang"en" > <head><meta charset"UTF-8"><title>register</title><link rel"stylesheet" type"text/css" href"/css/style.css&…...
ESP32网络开发实例-Web控制8路继电器
Web控制8路继电器 文章目录 Web控制8路继电器1、继器器介绍2、软件准备3、硬件准备4、代码实现4.1 单路继电器控制灯泡4.2 Web控制8路继电器将继电器与 ESP32 一起使用是远程控制交流家用电器的好方法。 本文介绍如何使用 ESP32 控制继电器模块。 我们将了解继电器模块的工作原…...
Flutter ☞ 变量
在Flutter中,变量分为两种类型 弱类型强类型 弱类型 var 如果没有初始值,可以变成任何类型 var a; // var a ; // 一旦赋值,就确定类型,不能随意改动 a abc; a 123; a true; a {key: 123}; a [abc];print(a)Object 动…...
冲刺十五届蓝桥杯P0006平面切分
文章目录 题目思路代码总结 题目 平面切分 思路 这道题是一个思维题把,之前没有接触过平面几何的知识,做起来感觉还是比较难的,用到的set集合和自己创建一个类 首先我们知道,一根直线A是可以将平面切分成两块的,如…...
mac电脑文献管理 EndNote 21最新 for Mac
EndNote 21 Mac版不仅能够快速有效的的帮助用户管理自己的文献,而且还可以用来创建个人参考文献库,添加各种文本,图像,连接,表格等等内容! - 搜索数百个在线资源以获取参考和PDF - 只需点击一下即可查找参…...
vue使用pdf-dist实现pdf预览以及水印
vue使用pdf-dist实现pdf预览以及水印 一.使用pdf-dist插件将PDF文件转换为一张张canvas图片 npm install pdf-dist二.页面引入插件 const pdfJS require("pdfjs-dist"); pdfJS.GlobalWorkerOptions.workerSrc require("pdfjs-dist/build/pdf.worker.entry&…...
[Python进阶] 操纵键盘:Pynput
6.7 操纵键盘:Pynput 6.7.1 press、release 按下或释放某个按键。 from pynput.keyboard import Controller, Keykeyboard Controller() # 按下并释放f keyboard.press(f) keyboard.release(f) # 按下组合按键:alt tab keyboard.press(Key.alt) key…...
购药不烦恼:线上购药小程序的快捷方式
在这个数字化时代,线上购药小程序的快捷方式正在改变着我们购药的方式。本文将介绍如何通过使用Python和Flask框架创建一个简单的线上购药小程序的原型,为用户提供购药的便利和快捷体验。 安装和设置 首先,确保你已经安装了Python和Flask。…...
10.17课上(七段显示器,递归异或与电路)
异或的递归与数电实现 用二选一选择器实现异或函数 在异或当中,如果有一项为0,就可以把那一项消掉;如果有一项为1,就是把剩下的所有项运算完的结果取反 (由此在算法当中可以采用递归解决) 当w1为0时&…...
GoogleTest 使用指南 | 测试模板函数
GoogleTest 使用指南 | 测试模板函数GoogleTest 使用指南 | 测试模板函数GoogleTest 使用指南 | 测试模板函数 模板类和函数由于其泛型特性,需要在不同类型下进行测试,以确保其通用性和正确性。 下面是一个示例。 m…...
深入SmoothL1Loss:从Faster R-CNN到YOLO,看一个损失函数如何影响模型精度
深入解析SmoothL1Loss:目标检测模型中的边框回归利器 在目标检测领域,边框回归(Bounding Box Regression)是决定模型定位精度的关键环节。当我们翻阅Faster R-CNN、YOLOv3等经典模型的源码时,会发现一个反复出现的损失…...
精准定位无版权音乐,快速获取商用授权源,Perplexity音乐搜索避坑全手册,深度拆解7类常见误判场景
更多请点击: https://codechina.net 第一章:Perplexity音乐资源搜索的核心价值与定位 Perplexity 音乐资源搜索并非传统意义上的音频播放器或流媒体平台,而是一个面向开发者、音乐学者与内容创作者的语义化音乐元数据发现引擎。其核心价值在…...
从总线到片上网络:高性能SoC互连架构演进与实战解析
1. 从“堵车”的总线到“高速公路网”:为什么我们需要NoC?记得我刚入行做芯片设计那会儿,一个SoC里塞进去几十个IP模块,大家共用一条总线,感觉已经挺“先进”了。那时候的芯片,就像一个小镇,只有…...
Illustrator批量替换脚本终极指南:5分钟掌握高效设计自动化
Illustrator批量替换脚本终极指南:5分钟掌握高效设计自动化 【免费下载链接】illustrator-scripts Adobe Illustrator scripts 项目地址: https://gitcode.com/gh_mirrors/il/illustrator-scripts 你是否曾经在Adobe Illustrator中花费数小时手动替换数十个甚…...
Flowable 6.7.2 适配达梦数据库踩坑实录:从驱动到Liquibase源码修改全攻略
Flowable 6.7.2 深度适配达梦数据库实战指南:从驱动配置到源码级改造 在国产化替代浪潮中,数据库迁移往往是技术团队面临的首要挑战。当工作流引擎Flowable遇上国产数据库达梦(DM),两者的"语言不通"会导致一系列兼容性问题。本文将…...
如何在Inkscape中快速实现专业级光线追踪?终极免费光学设计指南
如何在Inkscape中快速实现专业级光线追踪?终极免费光学设计指南 【免费下载链接】inkscape-raytracing An extension for Inkscape that makes it easier to draw optical diagrams. 项目地址: https://gitcode.com/gh_mirrors/in/inkscape-raytracing Inks…...
【新手向】:OpenClaw 本地 AI 智能体 Windows 部署教程(包含安装包)
Windows 一键部署 OpenClaw 教程|5 分钟搞定本地 AI 智能体,告别复杂配置 2026 年开源圈备受关注的「数字员工」OpenClaw(昵称小龙虾),凭借本地运行 零代码操作 自动执行任务的核心优势,成为实用型本地 …...
用Circuit JS在线模拟器,5分钟搞定欧姆定律和LRC振荡电路实验
用Circuit JS在线模拟器,5分钟搞定欧姆定律和LRC振荡电路实验 在电子工程和物理教学中,理论公式与实验验证的结合一直是提升学习效率的关键。传统实验室受限于设备、场地和时间,而Circuit JS这款基于浏览器的开源电路模拟器,恰好填…...
Sunshine游戏串流实战手册:构建你的跨平台游戏共享生态系统
Sunshine游戏串流实战手册:构建你的跨平台游戏共享生态系统 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 你是否曾想过在客厅大屏电视上畅玩书房电脑里的3A大作&…...
