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

C语言碎片知识

sizeof

1.sizeof是C语言中的一个操作符,同时也是关键字!!!!

2.sizeof的操作数可以是类型,变量或表达式

如图,第一个为什么是6?,因为先计算了3的大小,占4个字节,然后给4加了2.

第二个,当sizeof的操作数是类型时,必须加括号,

第三个,当操作数时变量时,不加括号也行

3.sizeof括号中的表达式不进行计算

4.sizeof返回值是无符号整数,但没明确是unsigned int还是unsigned long还是unsigned short等等,所以给了size_t类型

signed,unsigned

1.这是两个关键字

2.它们只修饰字符型和整型

3.对与int,默认是signed类型;

4.注意,对于char,没规定是signed类型,这与当前系统有关。

全局变量,局部变量

当全局变量与局部变量同名时,若在局部变量的作用域内,则局部变量优先使用

printf

1.当占位符是%s时,它不会忽略空格,当读到换行符时,就会停止读入,同时会抛弃换行符,看下面的例子

这就是区别,gets在读取时,遇到换行符会停止,同时也会将换行符读取上,所以puts在输出时也会将ret末尾的换行符输出

而printf不会将换行符读取上,所以hello和hehe靠在了一起。

2.限定宽度:在占位符中加上宽度即可。当宽度用整数表示时,默认是由对齐,负数则为左对齐

3.一般情况下,正数前不加+,若想显示+,则在%后面加上+

4.小数的宽度和小数位数可以通过参数来传递,用*表示,如下:

表示最小宽度是6,小数位数是2。

注意,3.14前面有空格,这是因为3.14一共占了4位,还少俩位,所以进行了右对齐

5.输出部分字符:只要在%s中间加上点号和数字即可,例如%.5s。若忘记加点号,则表示最小宽度为5,如下:

scanf

1.scanf是一个函数,不是关键字,也不是操作符,头文件是stdio.h

2.scanf处理数值占位符(比如%d,%ld,%f……)时,会自动忽略空白字符,包括空格,制表符,换行符

3.对于起首空格,除了%c,其他占位符都可以忽略

4.如何让%c不读人前面的空白字符?在%c前面加空格即可

此时,在一个字符前,不管有多少空格,都会被忽略。这一点以后在循环赋值时常用

看这俩个的区别,第一个在%c前没加空格,所以在读入23后把空格赋给了ch,所以输出了空格

5.上面说了scanf的占位符除了%c都会忽略空格,所以%s遇到空格就会停止读入,它也不会将空格存进去。另外,scanf函数遇到%s占位符时,会在字符串末尾存储一个\0.


http://www.kler.cn/a/157607.html

相关文章:

  • 开源轮子 - Logback 和 Slf4j
  • 实现 WebSocket 接入文心一言
  • maven-resources-production:ratel-fast: java.lang.IndexOutOfBoundsException
  • 合并比对学习资料
  • [网络安全]XSS之Cookie外带攻击姿势详析
  • Vue与React:前端框架的巅峰对决
  • PTA 7-231 买文具
  • 陀螺仪LSM6DSV16X与AI集成(2)----姿态解算
  • 数据结构-栈和队列
  • 一键式紧急报警柱系统
  • 力扣labuladong一刷day27天数组去重
  • 4-Docker命令之docker run
  • 剑指 Offer(第2版)面试题 16:数值的整数次方
  • JAVA-作业7-画一个笑脸
  • 【算法】算法题-20231205
  • 【C++】树型结构关联式容器:map/multimap/set/multisetの使用指南(27)
  • canvas绘制小丑
  • Mysql、Oracle区分大小写?
  • 【新手解答8】深入探索 C 语言:递归与循环的应用
  • spring cloud nacos整合gateway
  • 十五、机器学习进阶知识:K-Means聚类算法
  • 【SQL SERVER】定时任务
  • 【ARM Trace32(劳特巴赫) 使用介绍 12 -- Trace32 常用命令之 d.dump | data.dump 介绍】
  • Linux: 文档 :相关接口文档手册还是需要仔细阅读
  • mfc 设置excel 单元格的列宽
  • EM32DX-C4【C#】