关于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」经典游戏
我觉得很厉害。要是考场上能把这道题切了的话数据结构的水平肯定是不低的。 考虑简化版问题:如果只询问一个点的答案怎么做。 注意,我这么做是有风险的。我把战线拉长了。不过当然,如果连简化版的问题都做不了,那何谈正解&#…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
python/java环境配置
环境变量放一起 python: 1.首先下载Python Python下载地址:Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个,然后自定义,全选 可以把前4个选上 3.环境配置 1)搜高级系统设置 2…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...
