关于C语言的一些笔记
文章目录
- May4,2023
- 常量问题
- 基本数据类型
- 补码
- printf的字符格式控制
- 关于异或、异或的理解
- 赋值运算
- ++i和i++的区别
- 关系运算符
- May5,2023
- 逻辑运算中‘非’的理解
- 逗号运算
- 运算符的优先级问题
- 三目运算
摘自加工于C技能树
May4,2023
常量问题
//定义常量
const float PI;
PI = 3.14;
//false ,这种声明变量是错误的,常量声明之后就不能修改,即不能再赋值,所以应该声明之处就赋值。
//正确的方法为下面两种
const float PI = 3.14;
#define PI 3.14
printf("半径为%.2f的圆,面积是%.2f", radius, area);
//%.2f,表示精确,保留小数后2位数。//关于科学记数法
314e-2:这个e和后面的-2是一个整体,e可以理解为*10^,与-2连起来就是*10^-2。所以314e-2就是314*10^-2=3.14。
基本数据类型
signed:代表有符号的,第一个位代表正负,剩余的代表大小,例如:signed int 大小区间为-128-127。(默认为signed)unsigned:代表无符号的,所有的位都为大小,没有负数,例如:unsigned int 大小区间为:0-255。
补码
正数的补码是该数的二进制形式。
负数的补码需要通过以下几步获得:
(1)先取得该数的绝对值的二进制形式
(2)再将第1步的值按位取反(除符号位)
(3)最后将第2步的值加1

printf的字符格式控制
printf函数的格式控制 说明符:
%d:有符号十进制整数
%u:无符号十进制整数
%i:与%d相同
%o:无符号八进制整数(不输出前缀0)
%x:无符号十六进制整数(不输出前缀0)
%c:输出一个字符
%s:输出一个字符串
%f:浮点数,十进制小数形式,默认保留6位小数
%e:浮点数,e指数形式,小数点前有且仅有一位非零数,指数部分一般占4位
%g:根据值,自动选择%f或%e,不输出无意义的0
%p:输出指针(地址)
%%:输出一个 %
('a' <= ch <= 'z')‖('A’<=ch<='Z') (ch >= 'a' && ch <= 'z')‖(ch >= 'A' && ch<='Z')//前面表达是数学式的表达,因为C语言中没有 连等于 这样的表达,所以要用后面这种符合C语言表达的。scanf("%c",&ch)什么意思?
scanf()读变量的时候需要其实际存储的地址。%c是字符型,把输入的数字按照ASCII码相应转换为对应的字符。字符型取地址要加&。字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址,就不加&
关于异或、异或的理解
异或:男性和女性能生出孩子,否则就不行。
同或:同性之间才是真爱
来源于知友



赋值运算
int a=b=c=10
连续赋值应保证等号左边为变量,右边为赋值,并且变量已经有了存储空间;
此时bc相当于没有定义就使用了,会报错;应先定义,赋予存储空间,改为
int a,b,c;
a=b=c=10int main(int argc, char** argv),char** argv这句啥意思???
argc是传入main的参数个数,argv是传入main的函数列表,char**二级指针去指向它
++i和i++的区别

关系运算符

注意:C语言的基本数据类型有char、int、double,我们暂时认为只有char和int适用于上述关系运算符,double和字符串(字符数组)的关系运算以后再讨论。
注意:C语言没有“之间”、“中间”、“之内”或“在某范围内”的关系运算符,例如年龄在25-30岁之间,只能表达为:年龄大于等于25岁
并且 年龄小于等于30岁。
May5,2023
逻辑运算中‘非’的理解
year % 100 != 0 和 !(year % 100 == 0)两者的区别是什么?
逗号运算
引言,这是我最兴奋的一章,看了大佬文章,就像是哥伦布发现新大陆那样,感觉很新奇。但我这里只写我感觉到的,并远没有大佬那种深层次看问题的角度,也得不出来那样的结论,但他们就是我的师傅,我的目标,是我想要成为的那种人。
``Q:请教一下,这个y=(x=a+b),(b+c);语法是那个版本的支持的语法,我用得编译器始终报错,我想了了一下这个语句本质上归咎为y=7,9了,但这不符合我目前对C语言的认知,想着是不是这种定义出错了呢?
A:来自于大佬黛琳ghz的解答这种语法形式是 C 语言中的逗号表达式,用于在一个语句中包含多个表达式。在该语法中,逗号左边的表达式会被执行,但其结果会被忽略,然后逗号右边的表达式会被求值并赋值给 y。
C 语言中,逗号表达式的优先级是最低的,也就是说,它是所有运算符中优先级最低的。因此,在使用逗号表达式时要格外注意其优先级问题。
语句 y=(x=a+b),(b+c); 实际上是将 (x=a+b) 的结果赋值给 y,然后对 (b+c) 进行求值,但该结果却被忽略了。所以,实际上该语句的效果等同于 y = (x = a + b);。
关于编译器报错的问题,由于不同的编译器可能存在语法实现细节的差异,建议检查一下使用的编译器是否支持该语法。
测试前:
#include <stdio.h>
int main(int argc, char **argv)
{int a=3, b=4, c=5;int x=0;int y=(x=(a+b)),(b+c);printf("第一个y=%d\n", y);y=((x=a+b),(b+c));printf("第二个y=%d\n", y);}//运行结果
/*
.code.tio.c:6:23: error: expected ')'int y=(x=(a+b)),(b+c);^
.code.tio.c:6:21: note: to match this '('int y=(x=(a+b)),(b+c);^
.code.tio.c:6:22: error: redefinition of 'b'int y=(x=(a+b)),(b+c);^
.code.tio.c:4:11: note: previous definition is hereint a=3, b=4, c=5;^
2 errors generated.
/srv/wrappers/c-clang: line 5: ./.bin.tio: No such file or directory
*/
对于以上错误查询未果,于是阴差阳错下,把y提前声明了一下就好。
#include <stdio.h>
int main(int argc, char **argv)
{int a=3, b=4, c=5,x=0,y;y=(x=(a+b)),(b+c);printf("第一个y=%d\n", y);y=((x=a+b),(b+c));printf("第二个y=%d\n", y);}//运行结果
/*
第一个y=7
第二个y=9
.code.tio.c:5:19: warning: expression result unused [-Wunused-value]y=(x=(a+b)),(b+c);~^~
1 warning generated.
*/
总结:
#include <stdio.h>
int main(int argc, char **argv) {int a=1,b=2,c=3,d=4;int x,y;x = a,b,c,d;//不带括号的 ,数据类型 变量名 = 表达式1,表达式2,表达式3,表达式4;y = (a,b,c,d);//带括号的 ,数据类型 变量名 = (表达式1,表达式2,表达式3,表达式4);printf("x:%d\n",x);printf("y:%d\n",y);
}//运行结果:
1
4/*
注解:逗号运算符有两种方式。
第一种是不添加括号的,这种只会执行第一个表达式1,而忽略其他表达式的结果,并且返回第一个表达式的值或者说计算机可能把所有的表达式都执行了,但是呈现给你的是第一个表达式的值;
第二种是带括号的,这种执行了前面的表达式(即表达式1,表达式2,表达式3),但是忽略了他们的结果,只返回最后一个表达式(即表达式4)的值。
*/

运算符的优先级问题

三目运算
比较三个数中的大小




B选项有点看不懂。
相关文章:
关于C语言的一些笔记
文章目录 May4,2023常量问题基本数据类型补码printf的字符格式控制关于异或、异或的理解赋值运算i和i的区别关系运算符 May5,2023逻辑运算中‘非’的理解逗号运算运算符的优先级问题三目运算 摘自加工于C技能树 May4,2023 常量问题 //定义常量 const float PI; PI…...
【Python入门知识】NumPy数组迭代及连接
前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 数组迭代 迭代意味着逐一遍历元素,当我们在 numpy 中处理多维数组时, 可以使用 python 的基本 for 循环来完成此操作。 如果我们对 1-D 数组进行迭代,它将逐一遍历每个元素。 实例 迭…...
我们公司的面试,有点不一样!
我们公司的面试,有点不一样! 朋友们周末愉快,我是鱼皮。因为我很屑,所以大家也可以叫我屑老板。 自从我发了自己创业的文章和视频后,收到了很多小伙伴们的祝福,真心非常感谢! 不得不说&#…...
C++之初识STL—vector
文章目录 STL基本概念使用STL的好处容器vector1.vector容器简介2.vector对象的默认构造函数3.vector对象的带参构造函数4.vector的赋值5.vector的大小6.vector容器的访问方式7.vector的插入 STL基本概念 STL(Standard Template Library,标准模板库)STL 从广义上分为: 容器(con…...
资讯汇总230503
230503 12:21 【放松身心亲近自然 自驾露营成旅游新风尚】今年“五一”假期,我国旅游业的快速恢复催生自驾露营休闲游、短途游、夜游等新型旅游产品提质升级。快速发展的新兴旅游业态,在促进旅游消费、培育绿色健康生活方式等方面发挥了积极作用…...
C++之编程规范
目录 谷歌C风格指南:https://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/contents/ 编码规则: • 开闭原则:软件对扩展是开放的,对修改是关闭的 • 防御式编程:简单的说就是程序不能崩溃 •…...
ChatGPT做PPT方案,10组提示词方案!
今天我们要搞定的PPT内容是: 活动类型:节日活动、会员活动、新品活动分析类型:用户分析、新品立项、项目汇报内容类型:内容规划、品牌策划 用到的工具: mindshow 邀请码 6509097ChatGPT传送门(免费使用…...
分布式夺命12连问
分布式理论 1. 说说CAP原则? CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)这3个基本…...
sourceTree离线环境部署
目录 1、下载sourceTree安装包,打开之后弹出注册界面(需要去国外网站注册)2、使用技术手段跳过注册步骤3、打开安装包进行安装 注:建议提前安装好git 1、下载sourceTree安装包,打开之后弹出注册界面(需要去…...
6.1.1 图:基本概念
一,基本概念 1.基本定义 (1)图的定义 顶点集不可以是空集,但边集可以是空集。 (2) 有向图的表示: 圆括号 无向图的表示: 尖括号 简单图、多重图: 简单图:…...
SlickEdit for Windows and Linux crack
SlickEdit for Windows and Linux crack 现在可以在“新建注释”对话框中对颜色进行排序,使调色板中的颜色阵列看起来更符合逻辑。 在拆分或扩展行注释时添加了撤消步骤,这样您只需点击“撤消”一次即可撤消行注释扩展。 已更新VHDL颜色编码,…...
ChatGPT实现stackoverflow 解释
stackoverflow 解释 ChatGPT 公开服务以来,程序员们无疑是最早深入体验和"测试"的一批人。出色的效果也引发了一系列知识产权上的争议。著名的 stackoverflow 网站,就宣布禁止用户使用 ChatGPT 生成的内容来回答问题,一经发现&…...
第五章 作业(123)【编译原理】
第五章 作业【编译原理】 前言推荐第五章 作业123 随堂练习课前热身04-17随堂练习04-17课前热身04-24 最后 前言 2023-5-3 22:12:46 以下内容源自《【编译原理】》 仅供学习交流使用 推荐 第四章 作业(123)【编译原理】 第五章 作业 1 1.令文法G为…...
基于Vue的个性化网络学习笔记系统
1.系统登录:系统登录是用户访问系统的路口,设计了系统登录界面,包括用户名、密码和验证码,然后对登录进来的用户判断身份信息,判断是管理员用户还是普通用户。 2.系统用户管理:不管是…...
如何搭建一个HTTP实验环境
这一讲是“破冰篇”的最后一讲,我会先简单地回顾一下之前的内容,然后在 Windows 系统上实际操作,用几个应用软件搭建出一个“最小化”的 HTTP 实验环境,方便后续的“基础篇”“进阶篇”“安全篇”的学习。 “破冰篇”回顾 HTTP …...
Electron 环境搭建
https://start.spring.io/ 在线数据分析网站 https://tj.aldwx.com/ https://www.spsspro.com/ win10如何分屏 拖到边缘 Electron 环境搭建 https://www.electronjs.org/zh/docs/latest/tutorial/%E6%89%93%E5%8C%85%E6%95%99%E7%A8%8B electron 隐藏菜单 electron 标题栏 设…...
农机电招平台~java
摘要 随着农机电招行业的不断发展,农机电招在现实生活中的使用和普及,农机电招行业成为近年内出现的一个新行业,并且能够成为大群众广为认可和接受的行为和选择。设计农机电招平台的目的就是借助计算机让复杂的销售操作变简单,变…...
springboot+vue体质测试数据分析及可视化设计(源码+文档)
风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的体质测试数据分析及可视化设计。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者&a…...
thinkphp+vue+html高校固定资产管理系统维修 租借4h80u
本高校资产管理系统采用的数据库是Mysql,使用thinkphp框架开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。运行环境:phpstudy/wamp/xammp等 开发语言:php 后端框…...
【学习笔记】「北大集训 2021」经典游戏
我觉得很厉害。要是考场上能把这道题切了的话数据结构的水平肯定是不低的。 考虑简化版问题:如果只询问一个点的答案怎么做。 注意,我这么做是有风险的。我把战线拉长了。不过当然,如果连简化版的问题都做不了,那何谈正解&#…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成
厌倦手动写WordPress文章?AI自动生成,效率提升10倍! 支持多语言、自动配图、定时发布,让内容创作更轻松! AI内容生成 → 不想每天写文章?AI一键生成高质量内容!多语言支持 → 跨境电商必备&am…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
中医有效性探讨
文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...
解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
c# 局部函数 定义、功能与示例
C# 局部函数:定义、功能与示例 1. 定义与功能 局部函数(Local Function)是嵌套在另一个方法内部的私有方法,仅在包含它的方法内可见。 • 作用:封装仅用于当前方法的逻辑,避免污染类作用域,提升…...
面试高频问题
文章目录 🚀 消息队列核心技术揭秘:从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"?性能背后的秘密1.1 顺序写入与零拷贝:性能的双引擎1.2 分区并行:数据的"八车道高速公路"1.3 页缓存与批量处理…...
