当前位置: 首页 > news >正文

C语言的前置细碎知识

C语言前置细碎知识

  • C语言常见概念
    • main函数
    • 字符和ASCII
    • 字符串和\0
    • 转义字符
  • 数据类型和变量
    • 数据类型
    • 变量
    • 算术操作符
      • +,-,*
      • /
      • %
    • 赋值操作符
    • 单目操作符
    • 强制类型转换
    • scanf和printf介绍
      • ==printf==
      • 常见占位符
      • 输出格式
        • 限制长度
      • 控制小数点位数
      • 显示正负号
      • 输出部分字符串
      • ==scanf==

C语言常见概念

好久没有看C语言,决定这个暑假在学新的内容先将前面的复习一下,并补缺之前没有这里的笔记。同时这也是第一次使用Markdown进行写文章,有点不熟练,多多包涵!

main函数

main函数是程序的一个入口,也可以叫做主函数;前面的int代表返回整形的类型值,与return 0相呼应;main函数有且仅有一个

字符和ASCII

字符是指键盘敲的任意键,每个键都是一个字符。它是由单引号括起来的。每一个字符都有一个ASCII值,以方便字符存储在内存之中。

ASCII需要着重知道的是常见的ASCII值:
A~Z->65~90
a~z->97~122
0~9->0~9
\n->10

可以发现大写字母和小写字母相差32,同时0-31是不可打印字符。

字符串和\0

字符串是指有一系列字符组成的一串字符,用双引号括起来。当然字符串也可以是一个字符组成的的字符串。字符和字符串主要的区别是二者是被单引号还是双引号所包括。
\0是一个转义字符,是隐藏在字符串末尾的一个字符,它是字符串的结束的标志。

转义字符

转义字符作用
\r让光标回到开头
?表示问号,防止在书写多个问号时,被解析成三字母词
\n换行操作
表示单引号
"表示双引号
\表示一个反斜杠\
\b退格键,光标退回一个字符,但不删除这个字符
\t移动到下一个制表符,制表符一般是4/8的倍数
\ddd表示一到三位的8进制数字
\xdd表示两个16进制的数字
\0字符串结束的标志
%%表示一个百分号

数据类型和变量

数据类型

变量

变量的创建=数据类型+变量名(变量名是由字母、数字、下划线组成的,同时数字不能作为开头)。
变量的类别:分为全局变量和局部变量。遵循局部变量优先原则。

创建变量名的要求:

  • 变量区分大小写。
  • 变量不能是关键字。
  • 变量名尽量有意义

算术操作符

+,-,*

和我们平常数学使用的一样。

/

这个稍有点不一样,如果除号左右两边的操作数均是整数的话,最后的结果就是整数(相当于取整函数的意思);如果左右操作数至少有一个是浮点型,那么最后的结果就是浮点型。

%

取模运算,要求左右操作数必须是整数,运算就是取余。当左右操作数中有负数时,余数的正负要看看左操作数,左操作数是正,那么余数就是正;左操作数是负,那么余数就是负。

赋值操作符

操作符即为=,就是把右边的值赋给左边的值。

  • int a =10;//初始化 a=20;//赋值
  • 连续赋值a=b=c+3;//前提是已经初始化好a,b,c
  • 复合赋值a+=3;//等价于 a=a+3;

单目操作符

前置运算和后置运算。前置运算是指:++a/- -a,规则是先计算,后赋值。
后置运算是指:a++/a- -先赋值,后计算。

inta=10;intb=0;intc=0;b=a++;printf("%d\n",a);//11printf("%d\n",b);//10c=++a;printf("%d\n",a);//12printf("%d\n",c);//12

强制类型转换

格式:(要强转为的数据类型)变量;

inta=10;floatb=3.2;a=(int)a+b;//这里a+b是浮点型,但是要赋值的a是整型,需要将浮点型强转为整型

scanf和printf介绍

printf

inta=0;printf("%d\n;a");

常见占位符

占位符表示
%d十进制整数
%u十进制无符号int类型
%ld十进制 long int 类型
%hd十进制short 类型
%lu十进制无符号long int 类型
%lld十进制 long long int 类型
%o八进制整数
%x16进制整数
%c代表字符
%s字符串
%f表示单精度浮点型
%lf表示双精度浮点型
%Lf表示 long double 类型
%p代表地址
%zu代表size_t 类型

输出格式

限制长度

限制的是最少长度。

inta=123456;intb=123456;intc=1234;printf("%d\n",a);//123456printf("%5d\n",b);//123456printf("%5d\n",c);//_1234printf("%-5d\n",c);//1234_
  • 当要输出的数字长度大于要求的限制长度,那么就要原样输出。
  • 当要输出的数字长度小于要求的限制长度,那么就要补空格。这就分左对齐还是右对齐了。%-5d要求左对齐,%5d要求右对齐。代码中最后两行的结果真实中并不代下划线,只是为了清晰表达是补的空格而使用的这种方法。

控制小数点位数

inta=4.5678;printf("%f\n",a);//4.567800printf("%.2f\n",a);//4.56printf("%3.2f\n",a);//4.56
  • 小数字点后面小数字可以用来限制小数点的位数,同时也可以结合限定宽度来使用。

显示正负号

inta=10printf("%+d\n",a);//+10printf("%-d\n",a);//-10
  • 可以通过在百分号的后面加上正负号来表示这个数的正负。

输出部分字符串

printf("%.5s\n",abcd);//_abcd
  • %.[m]s其中[m]为一个数字,即限定的宽度。

scanf

inta=0;scanf("%d",&a);
  • 与printf较为类似均分为两个参数。左边为占位符,右边是要输的值。不同的是printf是将值输出到屏幕上,而scanf是将值输入到计算机内存里,同时第二个参数是必须要加取地址符号&。
  • 返回值是成功读取的次数。若在读取之前,发生读取错误或者是读到文件末尾就会返回EOF(-1)。
  • scanf 除了%c 会自动忽略空白字符。
  • 说一个我新见到的占位符%[ ]在方括号内指定一组字符串,不匹配就会停止。
  • scanf 是不会检测字符串是否超出了数组长度。所以通过加上限定,来控制数组防止溢出。
charname[10];scanf("%10s",name);
  • 赋值忽略符。用户可能会输入不符合规定的字符。例如下方代码,如果输入的是2026-7-5,那么会被正确解析,如果输入的是2026/7/5,那么就不会被正确解析,就会停止。因此提供了赋值忽略符*,来防止出现这种错误。只需要将*放在占位符百分号后面就可以了。
intyear=0;intmonth=0;intday=0;scanf("%d-%d-%d",&year,&momth,&day);scanf("%d%*c%d%*c%d",&year,&momth,&day);//加了赋值忽略符
  • 要想结束scanf,可以按三次ctrl+z来结束scanf。
http://www.jsqmd.com/news/1132114/

相关文章:

  • 16位ADC如何榨出24位精度?硬核拆解采集卡的软件过采样算法与三重缓冲区架构
  • Windows 11 下安装 Codex CLI,并配置独立 API 模式与桌面端分离使用
  • 重庆高口碑黄金回收白银回收
  • 2026最新调研录音整理工具选择建议 | 经过筛选的实用方案口碑盘点
  • 轻量级的数据交换格式——初识Json(下)
  • 杨紫白玉兰后台拥抱的那个男人,到底什么来头?
  • Lemos知识库-AI+知识图谱驱动智能脑进化
  • 具身数据启示录:打破物理茧房,六大源泉如何为机器人注入灵魂
  • 构建Apple Music级动态歌词体验:从架构设计到性能优化的完整技术指南
  • nullptr
  • 结构化的数据 Structured Data
  • 时刻 ShortTime --ESBasic 可复用的.NET类库(01)
  • 如何新建html文件
  • WarcraftHelper:魔兽争霸3终极优化指南,让你的经典游戏重获新生!
  • Linux字符设备驱动开发实战:从Hello World到内核交互
  • kernel.org 突发内核文件“消失“:Linux基金会确认配置失误,全球镜像同步触发连锁反应
  • SnapClick 1.1.1 更新速递:右键秒开 / 多编辑器打开 / 录屏 HUD / 毛玻璃透明度
  • IDEA集成GitHub
  • 数据分析实战:销售数据洞察
  • 非线性字符串数据结构串讲
  • AtomCode 实测:用 3 个真实项目验证它到底强在哪
  • Spring Security OAuth2 Resource Server:JWT 鉴权与权限映射实战
  • 逆向学习:我为什么放着文档不看,直接读字节码
  • 深入了解CLR的加载过程
  • 使用过正规新能源企业 GEO 优化服务团队,效果究竟咋样?
  • Meta、Google、Adobe隐形水印算法大翻车!误报率远高于宣称
  • Visual C++运行库终极解决方案:一键修复Windows系统兼容性问题
  • 前端day4
  • IR2104 半桥 BUCK 电路 PCB 布局:3 个关键布线规则解决开关尖峰与振荡
  • c#基础内容:泛型、线程、委托、流