C语言容易忽略的小知识点(1)

🌈这里是say-fall分享,感兴趣欢迎三连与评论区留言

🔥专栏:《C语言入门知识点》《C语言底层》《精通C语言》《C语言编程实战》

💪格言:做好你自己,你才能吸引更多人,并与他们共赢,这才是你最好的成长方式。


前言:

一些容易被忽略掉的小知识点


文章目录


正文:


  1. strlen:获取字符串的有效长度,不包括'\0'
  2. 局部变量是放在内存的栈区的,全局变量是放在内存的静态区
  3. 在 C 语言中,printf 函数打印浮点数(%f)时,默认会输出 6 位小数,这是 C 标准规定的默认格式。

如果需要指定小数位数,可以用 格式控制符 %.nf(n 为指定的小数位数)

  1. scanf中也有占位符,占位符和后边的参数提供的地址一一对应
  2. printf() 的参数数量 至少等于占位符数量,但可以多于占位符数量(多余的参数会被忽略)
  3. 在 C 语言中,else 语句的匹配规则并不是 "与对齐的 if 匹配",而是遵循 "就近原则"------ 即 else 总是与距离它最近的、且没有被其他 else 匹配的 if 配对,与代码的缩进(对齐)无关。
  4. 在 C 语言中,= = 操作符不能直接用来比较两个字符串是否相等。
  • 原因: C 语言中的字符串本质是字符数组,变量存储的是字符串的首地址(即第一个字符的内存地址)。 当用 == 比较两个字符串变量时,实际比较的是两个字符串的首地址是否相同(即是否指向同一块内存),而不是字符串的内容。
  1. 在 C 语言中,switch 语句中 case 后的表达式必须是 "整数类型的常量表达式",这是语法规定。
  2. 当 scanf 函数输入的值比预期(设计的输入值)多时,其行为取决于格式字符串的匹配情况和多余输入的位置,主要有以下两种常见情况:
  1. 多余输入在所有格式说明符匹配完成后
    如果 scanf已经成功匹配了所有格式说明符(即读入了预期的所有值),剩余的多余输入会留在输入缓冲区中,等待后续的输入函数(如 scanf、getchar等)读取。
  2. 多余输入在格式说明符匹配过程中(格式不匹配)
    如果多余的输入与下一个格式说明符的类型不匹配(例如预期输入整数,却输入了字母),scanf 会立即停止匹配,成功匹配的部分有效,未匹配的格式说明符对应的变量值不确定(可能未被赋值),且不匹配的输入会留在缓冲区。
  1. switch的每个case之后如果没有加break语句,当前case执行结束后,会继续执行紧跟case中的语句。
  • 本节完...
相关推荐
优橙教育3 小时前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
我叫洋洋4 小时前
C ++ [ hello world ]
c语言·c++·算法
SeaTunnel5 小时前
从 Python Script 地狱到标准化数据集成框架
大数据·开发语言·python·程序员·代码·seatunnel
碎光拾影5 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
天空'之城5 小时前
C 语言工业级通用组件手写 09:CRC32 数据校验
c语言·嵌入式开发·数据校验·crc32·工业级组件
Marst Code6 小时前
(python)2026Plotly 库评估:交互式可视化到底值不值得引入?
开发语言·python
Miao121316 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
CRMEB系统商城7 小时前
开源自建还是SaaS订阅?算一笔3年经济账
java·大数据·开发语言·开源
keyipatience8 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
我的xiaodoujiao8 小时前
快速学习Python基础知识详细图文教程9--函数进阶
开发语言·python·学习·测试工具