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时&…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
C语言中提供的第三方库之哈希表实现
一. 简介 前面一篇文章简单学习了C语言中第三方库(uthash库)提供对哈希表的操作,文章如下: C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...
wpf在image控件上快速显示内存图像
wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...
永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...
恶补电源:1.电桥
一、元器件的选择 搜索并选择电桥,再multisim中选择FWB,就有各种型号的电桥: 电桥是用来干嘛的呢? 它是一个由四个二极管搭成的“桥梁”形状的电路,用来把交流电(AC)变成直流电(DC)。…...
前端高频面试题2:浏览器/计算机网络
本专栏相关链接 前端高频面试题1:HTML/CSS 前端高频面试题2:浏览器/计算机网络 前端高频面试题3:JavaScript 1.什么是强缓存、协商缓存? 强缓存: 当浏览器请求资源时,首先检查本地缓存是否命中。如果命…...
