C语言第三天笔记

变量

概念

表面:程序运行过程中取值可以改变的数据

实质:变量其实代表了一块内存区域/单元/空间。变量名可视为该区域的标识。 整个变量分为三部分:

变量名:这个只是变量的一个标识,我们借助变量名来存取数据。

变量空间/内存单元:这个就是内存中分配的一块用来存储数据的空间/区域。

数据/变量值:这个就是存放在变量空间中的数据

注意:我们把数据存放间变量名对应空间的过程称之为变量的赋值操作。

语法

命名规范

1. 变量名可以由数字、字母(区分大小写)、下划线 _ 、$组成,不能以数字开头。

2. 不建议使用中文,也不建议使用拼音。

3. 变量名不能与系统中已有的标识符重名。(比如关键字、保留字...,举例:int,signed,if,break...)

案例

说明:

1. 变量定义是,利用同一个类型标识符可同时定义多个变量,各个变量之间使用 , (英文逗号)分 割。

2. 定义变量后,如果未对变量进行初值的赋予,则变量所代表的内存空间中的数据是随机安排的。

3. 可以在变量定义的同时给变量赋值,这个操作称为变量的初始化,C语言允许对变量进行初始化。

4. 初始化变量是,尽量做到类型相同,例子: long l = 567L

5. 整型数据在内存中的存放方式:

按照补码方法存放:

正整数的补码就是将该数据转换为二进制格式。

负整数的补码就是将该数据的绝对值转换为二进制格式,按位取反,并+1。 

6. 浮点型数据在内存中的存放方式 采用指数方式存放:

例子:

需求:将27.5以float类型存放:

解析:

27.5的二级制为11011.1,指数表示法:1.10111 * 2 4

指数:4,加上127,就是131,二进制1000 0011

尾数(小数点后的数)10111,补够23位 1011 1000 0000 0000 0000 000用二进制表示就是 (符号数位1位)0 (指数位8位)1000 0011 (尾数位23位)1011 1000 0000 0000 0000 000

所以 单精度浮点型数据27.5 在内存中的存储方式如下

0 1000 0011 1011 1000 0000 0000 0000 000

注意:浮点型数据在内存中存放的是一个近似值。

7. 字符数据在内存中的存放方式:

以ASCII码存放

字符的存在分为两种形式,ASCII码(编号,从0开始的正整数)和ASCII码值(数据,包括英文字母 大小写、数字、特殊符号)

注意:ASCII码是可以和整数进行数学运算的。

举例:

数据类型转换

规则:不同的数据类型参与运算,需要转换为同一类型后运算

数值比较由小到大简单排序:

隐式类型转换

说明:编译系统自动完成,一般是低优先级类型向高优先级类型转换,这种被称作自动类型转换 (由小到大)。

语法:

举例:

强制类型转换

说明:程序员自己实现,一般是高优先级类型向低优先级类型转换,这种被称作强制类型转换(由 大到小)

语法:

举例:

注意:强制类型转换过程中,可能会出现精度丢失的问题。如果大类型数据范围小类型数据范 围,此时数据不会丢失,正常转换;如果大类型数据范围 > 小类型数据范围,此时丢失超出部分的 数据,精度会缺失!

原则:类型转换并不会改变原变量的类型。

运算符

算术运算符

单目运算符

说明: ++ -- +(正) -(负) *(解引用运算符,后面讲)

++a与a++的区别

int a = 1,int x = ++a; : ++ 在前,先自加1,后运算

int a = 1,int x = a++; : ++ 在后,先运算,后自加1

案例:

总结:

分析上面的案例,我们发现,不管是 ++ 在前,还是 ++ 在后,计算数自身都会+1。区别在于运算的结 果不一样。 ++ 在前,先自加1,后运算; ++ 在后,先运算,后自加1。

练习1:

--a与a--的区别

int a = 1,int x = --a; : -- 在前,先自减1,后运算

int a = 1,int x = a--; : ++ 在后,先运算,后自减1

双目运算符

说明: + - * / %

举例:

注意:

1. 两个整数相除的结果是整数,小数部分被舍弃。要想其结果是实数,可在分子*1.0(隐式类型转换)

2. 求模运算(取余运算)左右两边的操作数都必须是整型。如果是类似于3.0这样的数,是错误的。

关系运算符

说明: > < >=

案例:

什么是表达式?

表达式就是表达某种意思的式子。在C语言中,表达式指的是 运算符 连接 操作数 (变量|常量...)的式 子。

注意:

由关系运算符构成的表达式称为关系表达式,关系表达式的值为boolean(布尔值)

非0 :关系成立,为真

0 :关系不成立,为假

逻辑运算符

说明: &&(与) ||(或) !(非)

&& :逻辑与(且),符号两边的操作数都为真,结果才为真。举例: ((5>4)&&(5-4)>1) ,结果 0

|| :逻辑或(或),符号两边的操作数只有有一个为真,结果就为真。举例: ((5>4)||(5- 4)>1) ,结果 1

! :逻辑反(取反),取反,非0为真,举例: !(!(5>4)) ,结果 1

惰性运算

所谓的惰性运算,就是减少运算次数。

短路与: && 两边的操作数,只要左边不成立 0 ,直接返回假,不再校验右边。

短路或: || 两边的操作数,只要左边成立 1 ,直接返回真,不再校验右边。

扩展

ISO-8859-1:西欧编码,一般遇到直接改编码。针对文件内容。

GBK:国标,中国标准编码/字符库,收录了大量的汉字+中文符号。针对文件内容。

UTF-8:全球标准,几乎收录了全球的各种字符集,包括GBK包含的常用汉字以及中文符号。针对文件 内容。

ASCII:字符集,C语言字符就是以ASCII码进行存储。针对程序内部数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1489090.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

数据库实例迁移实践

背景 随着业务发展&#xff0c;数据库实例磁盘逐渐升高&#xff0c;告警频繁&#xff0c;且后续可能会对DDL产生影响&#xff08;尤其是借助ghost等工具执行的DDL&#xff09;。 该实例有多个库&#xff0c;则需要迁移其中的一个或几个单库到其他实例&#xff0c;为什么不做分…

第G4周:CGAN|生成手势图像 | 可控制生成

本文为&#x1f517;365天深度学习训练营 中的学习记录博客 原作者&#xff1a;K同学啊 理论知识&#xff1a; 条件生成对抗网络&#xff08;CGAN&#xff09;是在生成对抗网络&#xff08;GAN&#xff09;的基础上进行了一些改进。对于原始GAN的生成器而言&#xff0c;其生成的…

探索 SPL-404 协议标准:NFT 与 DeFi 的融合

在快速发展的数字资产领域中&#xff0c;NFT 协议标准持续演变&#xff0c;改变了我们对数字所有权和互动方式的理解。从 Art 到 Gamefi 等等&#xff0c;NFT 已经演变成数字经济的重要组成部分&#xff0c;吸引了广泛关注。遵循 ERC404 协议&#xff0c;SPL404 概念在 Solana …

昇思25天学习打卡营第22天|CV-Vision Transformer图像分类

打卡 目录 打卡 ViT简介 模型结构 基于ViT实现ImageNet分类任务 环境准备与数据读取 模型解析 Transformer基本原理 Self-Attention模块 代码实现 Transformer Encoder 代码实现 ViT模型的输入 Patch Embedding代码处理输入 整体构建ViT 模型训练与推理 模型训…

金字塔监督在人脸反欺骗中的应用

介绍 论文地址&#xff1a;https://arxiv.org/pdf/2011.12032.pdf 近年来&#xff0c;人脸识别技术越来越普及。在智能手机解锁和进出机场时&#xff0c;理所当然地会用到它。人脸识别也有望被用于管理今年奥运会的相关人员。但与此同时&#xff0c;人们对人脸欺骗的关注度也…

【无标题】Git(仓库,分支,分支冲突)

Git 一种分布式版本控制系统&#xff0c;用于跟踪和管理代码的变更 一&#xff0e;Git的主要功能&#xff1a; 二&#xff0e;准备git机器 修改静态ip&#xff0c;主机名 三&#xff0e;git仓库的建立&#xff1a; 1.安装git [rootgit ~]# yum -y install git 2.创建一个…

【Linux】syscall sys_write流程摸索

这是通过tty进行摸索sys_write的流程。 在前面的博客里&#xff0c;我们可以看到基于内核C语言源代码日志打印&#xff0c;在打印的日志里边包含&#xff1a;日期&#xff0c;时间&#xff0c;当前文件所在代码目录&#xff0c;当前执行函数名&#xff0c;当前文件执行行号&am…

苦学Opencv的第十一天:图像的形态学操作

Python OpenCV从入门到精通学习日记&#xff1a;图像的形态学操作 前言 图像形态学是图像处理中的一个重要分支&#xff0c;主要关注图像中物体的形状和结构。通过形态学操作&#xff0c;我们可以对图像进行有效的分析和处理&#xff0c;例如图像的腐蚀与膨胀、开运算与闭运算…

nginx的学习(一):nginx的基本概念和反向代理

简介 nginx的基本概念&#xff0c;以及反向代理的配置 nginx 是一个高性能的http和反向代理web服务器及电子邮件&#xff08;IMAP/POP3/SMTP&#xff09;代理服务器。 相关的基本概念 正向代理 客户端配置代理服务器&#xff0c;通过代理服务器访问互联网。 反向代理 客…

【8月EI会议推荐】第四届区块链技术与信息安全国际会议

一、会议信息 大会官网&#xff1a;http://www.bctis.nhttp://www.icbdsme.org/ 官方邮箱&#xff1a;icbctis126.com 组委会联系人&#xff1a;杨老师 19911536763 支持单位&#xff1a;中原工学院、西安工程大学、齐鲁工业大学&#xff08;山东省科学院&#xff09;、澳门…

Xinstall揭秘:一键拉起服务如何助力App提升用户体验和下载转化率

在移动互联网时代&#xff0c;App的运营和推广显得尤为重要。而在这个过程中&#xff0c;如何提升用户体验和下载转化率成为了每个App运营者关注的焦点。今天&#xff0c;我们就来揭秘一下Xinstall的一键拉起服务&#xff0c;看看它是如何助力App提升用户体验和下载转化率的。 …

Java之多线程-同步代码块

线程同步 Java中提供了线程同步的机制&#xff0c;来解决上述的线程安全问题。 Java中实现线程同步&#xff0c;主要借助synchronized关键字实现。 线程同步方式&#xff1a; 同步代码块 同步方法 锁机制 1&#xff09;同步代码块 格式&#xff1a; //Object类及其子类…

Flink笔记整理(五)

Flink笔记整理&#xff08;五&#xff09; 文章目录 Flink笔记整理&#xff08;五&#xff09;七、处理函数&#xff08;最底层最常用最灵活&#xff09;7.1基本处理函数&#xff08;ProcessFunction&#xff09;处理函数的功能和使用ProcessFunction解析 7.2按键分区处理函数&…

数据结构 Day2 链式存储

线性表的链式存储 解决顺序存储的缺点&#xff0c;插入和删除&#xff0c;动态存储问题。特点&#xff1a;线性表链式存储结构的特点是一组任意的存储单位存储线性表的数据元素&#xff0c;存储单元可以是连续的&#xff0c;也可以不连续。可以被存储在任意内存未被占用的位置上…

JavaScript Let

ECMAScript 2015 ES2015 引入了两个重要的 JavaScript 新关键词&#xff1a;let 和 const。 这两个关键字在 JavaScript 中提供了块作用域&#xff08;Block Scope&#xff09;变量&#xff08;和常量&#xff09;。 在 ES2015 之前&#xff0c;JavaScript 只有两种类型的作…

【数据库】联合索引在b+树如何存储

什么是联合索引&#xff1f; 联合索引是一种数据库索引类型&#xff0c;它允许你基于表中两个或多个列的组合来创建索引。这种索引可以提高数据库查询的性能&#xff0c;特别是当查询条件涉及到这些列时。 如&#xff1a; create index id_name_age out users(name,age) 索引…

算法刷题day20|回溯:39. 组合总和、40. 组合总和 II、131. 分割回文串

39. 组合总和 回溯 class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(vector<int>& candidates, int target, int sum, int startIndex) {if (sum > target) {return;}if (sum target) {result.push…

C#、Net6、WebApi报表方案

目录 1 Pdf表单方案 1.1出现如下错误提示: 1.2 字体路径使用 2 Docx报表模板方案 2.1 pdf方案缺陷 2.2 解决方案 3 Spire.Doc报表方案 3.1 Docx方案缺陷 3.2 解决方案 4 插入复选框 5 WebApi文件流下载接口 6 软件获取方式 1 Pdf表单方案 使用【Adobe Acrobat P…

Python 爬虫入门(一):从零开始学爬虫 「详细介绍」

Python 爬虫入门&#xff08;一&#xff09;&#xff1a;从零开始学爬虫 「详细介绍」 前言1.爬虫概念1.1 什么是爬虫&#xff1f;1.2 爬虫的工作原理 2. HTTP 简述2.1 什么是 HTTP&#xff1f;2.2 HTTP 请求2.3 HTTP 响应2.4 常见的 HTTP 方法 3. 网页的组成3.1 HTML3.1.1 HTM…