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

C语言学习笔记 - 37.数据类型 - scanf函数的基本用法

本知识点对应谭浩强《C程序设计(第五版)》第3章3.4.4节"用scanf函数输入数据",是C语言实现用户交互的核心基础。scanf与printf是C语言最常用的一对输入输出函数,几乎所有需要用户输入的程序都会用到。


一、教材学习建议

谭浩强《C程序设计(第五版)》整体质量优秀,但部分章节讲解不够深入,初学者学习时应重点关注以下内容:

章节类型

章节内容

学习建议

核心重点章节

第4章(选择结构)、第5章(循环结构)、第7章(函数)

这三章是C语言的灵魂,建议逐字精读。

次重点章节

第8章(指针)

难度较大但极其重要,应尽量理解。

了解性章节

第9章及以后的内容

了解基本概念即可,无需深入钻研。

补充学习

教材中"浮点数常量的表示"、"数据的溢出"等内容

依赖补码知识,待后续补码专题讲解后再深入理解。


二、scanf函数概述

2.1 核心功能

scanf函数的作用:将用户从键盘输入的字符序列,转换为指定格式的数据,并存入对应的变量中。

与直接赋值(如int i=123;)相比,scanf实现了动态输入:程序运行时由用户指定变量的值,大大增强了程序的灵活性和交互性。

2.2 基本语法

scanf("输入控制符", 输入参数);
  • 输入控制符:指定输入数据的格式,与printf的输出控制符用法基本一致。

  • 输入参数:变量的地址,必须在变量名前加取地址符&


三、基本用法:不含非输入控制符

这是scanf最常用、最简单的用法,格式字符串中只包含输入控制符。

3.1 代码示例

#include <stdio.h> int main() { int i; // 定义整型变量i,但不初始化 printf("请输入一个整数:"); scanf("%d", &i); // 从键盘读取一个整数,存入变量i中 printf("你输入的整数是:%d\n", i); return 0; }

运行过程

  1. 程序运行到scanf语句时会暂停,等待用户输入。

  2. 用户在键盘上输入123并按下回车键。

  3. scanf将输入的字符'1''2''3'转换为十进制整数123

  4. 123存入变量i对应的内存单元。

  5. 程序继续执行,输出结果:你输入的整数是:123

3.2 输入控制符说明

scanf的输入控制符与printf的输出控制符完全一致:

  • %d:输入十进制整数。

  • %c:输入单个字符。

  • %f:输入单精度浮点数。

  • %lf:输入双精度浮点数。


四、核心原理解析

4.1 为什么需要输入控制符?

关键事实:从键盘输入的所有内容,本质上都是字符,而不是数字。

例如,当你在键盘上输入123时,操作系统接收到的不是整数123,而是三个独立的字符:'1'(ASCII码49)、'2'(ASCII码50)、'3'(ASCII码51)。

输入控制符的作用就是:将这些字符按照指定的格式转换为对应类型的数据%d告诉scanf:"请把用户输入的数字字符序列转换为一个十进制整数"。

4.2 为什么需要取地址符&

计算机内存由一个个连续的存储单元组成,每个存储单元都有一个唯一的内存地址。变量本质上是内存中一块连续存储单元的别名。

  • &是C语言中的取地址运算符

  • &i表示"获取变量i的内存地址"。

  • scanf需要知道变量的地址,才能找到变量在内存中的位置,将转换后的数据存入正确的存储单元。

通俗理解:变量就像一个盒子,地址就是盒子的编号。scanf需要知道盒子的编号(地址),才能把东西(数据)放进正确的盒子里。

初学者取巧记忆法:如果暂时不理解地址的概念,只需记住:要给哪个变量赋值,就在变量名前面加一个&


五、要点总结

  1. scanf函数实现了程序的动态输入功能,使程序可以在运行时接收用户输入的数据。

  2. 基本语法:scanf("输入控制符", &变量名);

  3. 输入控制符与printf的输出控制符用法一致,如%d用于输入十进制整数。

  4. 从键盘输入的所有内容本质上都是字符,输入控制符负责将字符转换为对应类型的数据。

  5. 必须在变量名前加取地址符&,否则scanf无法找到变量的内存位置。

  6. 学习C语言应重点掌握第4、5、7章,这三章是后续所有编程学习的基础。

http://www.zskr.cn/news/1313787.html

相关文章:

  • 北京永强数据恢复中心硬盘efi分区丢失系统数据恢复
  • 沟槽式接触技术:从光刻简化到工艺整合的芯片制造革新
  • 期刊论文发表提速:虎贲等考 AI,让核心期刊写作更规范、更高效、更容易中稿
  • CodeArts
  • 1987年7月18日晚上19-21点出生性格、运势和命运
  • 降重降 AIGC 双通关:虎贲等考 AI 让论文自然无痕迹,安全过审更省心
  • 生命起源的自指拓扑阈值理论:从化学网络到自指闭环的相变(世毫九实验室技术报告 TR-019-ABIO)
  • 游戏卡顿困扰你?DLSS版本管理工具帮你轻松提升帧率
  • 使用 TaoToken CLI 工具一键配置开发环境与多个 AI 工具
  • 四大编程技术对比:PHP、Java、Python与HTML
  • Grafana 令牌被盗,GitHub 环境可遭访问且代码库被下载
  • 四川防静电地板厂靠谱实力排行:四川防静电地板厂/成都防静电地板厂/水泥纤维网络架空地板/活动架空地板/玻璃防静电地板/选择指南 - 优质品牌商家
  • 如何快速掌握微信读书笔记助手:从阅读到知识管理的终极指南
  • 2026年10款降AI率工具实测红黑榜:毕业生必备!附免费降AI避坑指南 - 降AI实验室
  • 酒店智能一卡通门禁及梯控子系统通过先进的技术手段,实现了对酒店物理空间的安全、高效、智能化管理。选择可靠的设备供应商和有经验的集成商,进行周密的方案设计和规范的施工,是项目成功的关键。
  • Laravel集成AI智能体开发指南:从工具调用到实战客服助手
  • 神经网络分子动力学与长程静电模拟优化策略
  • python系列【仅供参考】;避开这些坑,你的Python爬虫才能稳定爬取IEEE Xplore(含反爬策略与MongoDB存储实战)
  • 2026年Q2热门防护网围栏网核心技术参数全解析:铁丝网护栏网、铁路护栏网、高速路围栏网、体育场围栏网、体育场护栏网选择指南 - 优质品牌商家
  • AltSnap:Windows窗口管理的终极解决方案,让你的工作效率提升300%
  • 地下水数值模拟中稳态与瞬态模型的构建机理及参数率定方法指南
  • 从Gmsh建模到Meshlab后处理:一个完整3D打印模型修复与优化流程
  • 机器人柔顺控制与四足机器人动态运动优化
  • 成都打印机出租质量推荐榜:成都打印机租赁公司推荐/成都打印机租赁哪家好/成都打印机租赁推荐/成都附近打印机出租公司/选择指南 - 优质品牌商家
  • 保姆级教程:用ENVI 5.6和Landsat8数据,一步步反演城市地表温度(附单窗算法公式详解)
  • 2026工业控制单片机开发服务商推荐榜:DSP程序开发/FPGA开发/FPGA电路开发/FPGA程序开发/PCB硬件开发/选择指南 - 优质品牌商家
  • 别再只会用PS加Logo了!聊聊图片、文本、数据库里那些‘看不见’的数字水印怎么玩
  • Pandas Series:深入理解Python数据分析的基石
  • 强化学习基础:马尔可夫决策过程
  • MAA明日方舟助手:智能游戏管理终极解决方案