C语言学习_DAY_2_变量的定义_输入与输出
高质量博主,点个关注不迷路🌸🌸🌸!
目录
I. 变量的定义
II. 变量的赋值
III. 输出
IV. 输入
I. 变量的定义
首先,我们新建一个.c文件在Dev C++中,并把之前定义好的程序框架放进去。
此时我们开始学习变量的定义,在此之前,先简单了解一下变量是什么:
所谓变量,是相对于常量而言的一个词,例如一个函数: y = x + 1, 在这里面,y是因变量,x是自变量,它们两个都是变量,因为它们的值都可以被修改。同理,我们这里所说的变量,也指的是值可以被修改的量。
我们在下面的代码中,定义一个变量,它的名字叫a,它的类型是整数,它的值是0:
#include<stdio.h>int main(){int a = 0;return 0;
}
通过这句定义的代码,我们可以认识到,变量的定义语句分为三个部分:
变量定义:类型关键字 + 变量名 + 等于号(=) + 初始值
于是举一反三,我们如果想定义一个带有小数的变量a,并且已知小数的类型关键字是float(其实应该叫浮点数,但这里暂时不规范的叫它小数),它的值是1.1,那么代码应该是:
#include<stdio.h>int main(){float a = 1.1;return 0;
}
这里补充一下之前没有提到的重要细节:
C语言中,每一行代码都以一个分号结尾,原因是之前提到过,C语言是编译型的语言,编译器在对C语言进行编译的过程中,是通过分号区分每一句代码的,因此我们需要在每一句代码后面加上分号。
II. 变量的赋值
接下来是变量的赋值,首先还是先解释一下变量赋值是什么意思:
赋值,也就是给变量一个值,之前我们提到变量是值可以发生变化的量,那么很自然的,我们如果要修改变量的值,就需要给变量进行“赋值”的操作。
下面举一个赋值的例子:
#include<stdio.h>int main(){int a = 0;a = 3;return 0;
}
上面的例子中,整数型的变量a,它的初始值是0,而后又被赋值为3。
下面再补充一个重要的知识点:
在C语言中,或者说大部分编程语言中,某个变量 = 某个值,例如 x = 3,它的含义是把 等号右边的值,赋给 等号左边,也就是上面提到的赋值操作,而不是在表示x和3进行比大小的操作。也就是说我们要区分赋值操作和比大小的操作,比大小的操作在后续的笔记中会进行补充,到目前为止,我们只有赋值操作,符号是单个等号 =
III. 输出
本篇笔记的最后,我们聊聊C语言的输入和输出,这里的输入和输出,是对于控制台来说的:
输入,就是指用户向控制台输入某个值,而这个值可能会对程序的运行有一些影响。
输出,就是指控制台向用户展示某些结果,这些结果可能是程序的运行结果。
首先聊聊输入,我们先举一个例子,回顾第一篇笔记我们的第一个C程序:
#include<stdio.h>int main(){printf("Hello,world!");return 0;}
我们再运行一遍:

可以看到,控制台向用户输出了一行:Hello,world!
于是我们可以得到C语言输出语句的代码格式:
printf(" ");
其中,需要输出的内容放在两个引号之间即可。
那么问题来了,如果我们想要输出的内容,是一个变量的值,应该怎么做呢?看下面这个例子:
#include<stdio.h>int main(){int a = 0;printf("%d",a);return 0;
}
这两句代码,实现了把变量a的值,输出到控制台。那么我们从中可以看出,C语言输出变量的代码格式为:
printf("%+变量类型标识符",变量名);
其中,printf()是C语言用来输出的函数,而整型变量的变量类型标识符刚好是d,因此我们是%d,那么同样的,我们再来一个举一反三,如果我们的a是一个小数,它的标识符是f,我们如何写它的输出语句呢?(建议可以先自行尝试)
#include<stdio.h>int main(){float a = 1.1;printf("%f",a);return 0;
}
IV. 输入
最后的最后,我们了解一下C语言的输入是怎么做的。
首先直接看一个案例,我们先声明一个整型的变量a,并把它的值通过输入来赋值,那么我们的代码为:
#include<stdio.h>int main(){int a;scanf("%d",&a);return 0;
}
首先,补充一个小知识点:
区分定义与声明:
如果观察的仔细的话,可以看出,这个案例,我在描述变量a的时候,用的动词是声明而不是定义,那么声明和定义,有什么区别呢?
一般而言,我们说声明的时候,指的是新创建一个变量,但是并不给它一个值,如上面,int a;但是没有给a一个值,那么这句话就是声明。
而定义是值,在创建a的同时,给a一个值,即int a = 3;
通过上面的代码,我们可以发现,C语言中,输入的语法格式为:
scanf("%+变量类型标识符",&变量名);
其中,scanf()是C语言中输入的函数,第一部分,即逗号前面的部分,和输出的格式完全一致。对于第二部分,这里在变量名前面加一个“&”的符号,其实并不是一个通用的格式,真正通用的格式为:
scanf("%+变量类型标识符",变量在内存中的地址);
但因为在现阶段,我们没有学习过获得变量地址的知识,因此我们暂时用下面的这种语法格式。
scanf("%+变量类型标识符",&变量名);
运行这段代码之后,控制台弹出,我们看到下面的画面:

此时注意,和之前不同,带有输入的程序,如前面所说的那样,我们用户需要主动向控制台输入内容,并按回车键确认输入:

可以看到回车键按后,程序才执行结束,此时a的值是我们输入的值,3.
最后,我们联合输入和输出,以及变量的定义与赋值,做一个简单的程序,要求如下:
定义一个整型的变量a,值为3,再通过输入操作,对a进行重新赋值,而后把赋值后的a变量的值输出到控制台。
这个简单的程序会放在评论区,有兴趣的初学者可以进行尝试!
相关文章:
C语言学习_DAY_2_变量的定义_输入与输出
高质量博主,点个关注不迷路🌸🌸🌸! 目录 I. 变量的定义 II. 变量的赋值 III. 输出 IV. 输入 I. 变量的定义 首先,我们新建一个.c文件在Dev C中,并把之前定义好的程序框架放进去。 此时我…...
mac 安装navicat
由于各种原因发布不了链接,这里记录下,保存在了阿里云里...
RocketMQ快速入门
2.1 消息生产和消费介绍使用RocketMQ可以发送普通消息、顺序消息、事务消息,顺序消息能实现有序消费,事务消息可以解决分布式事务实现数据最终一致。RocketMQ有2种常见的消费模式,分别是DefaultMQPushConsumer和DefaultMQPullConsumer模式,这…...
【虚拟仿真】Unity3D实现从浏览器拉起本地exe程序并传参数
推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 最近有项目需求,从浏览器调起来本地的exe程序&…...
Intel中断体系(1)中断与异常处理
文章目录概述中断与异常中断可屏蔽中断与不可屏蔽中断(NMI)异常异常分类中断与异常向量中断描述符表中断描述符中断与异常处理中断与异常处理过程堆栈切换错误码64位模式下的中断异常处理64位中断描述符64位处理器下的堆栈切换相关参考概述 中断是现代计…...
财报解读:四季度营收超预期,优步却越来越“不务正业”了
“公司第四季度的业绩表现将是强劲的”。 公布2022年第三季度财报时,优步的高管给出了这样的预告,给资本市场打了一针“强心剂”。然而有人对此表示质疑,后疫情时代,带着新模式、新车型的全新网约车公司层出不穷,车企…...
C语言-程序环境和预处理(14.2)
目录 预处理详解 1.预定义符号 2. #define 2.1 #define定义标识符 2.2 #define 定义宏 2.3 #define 替换规则 注意事项: 2.4 #和## 2.5 带副作用的宏参数 2.6 宏和函数对比 3. #undef 4. 条件编译 4.1 单分支条件编译 4.2 多分支条件编译 4.3 判断是…...
VHDL语言基础-时序逻辑电路-计数器
目录 计数器的设计: 计数器的作用: 计数器的实现: 1、用“”函数描述: 用T触发器级联构成的串行进位的二进制加法计数器的仿真波形: 计数器的仿真: 计数器的设计: 计数是一种最简单基本的…...
MySQL数据库07——高级条件查询
前面一章介绍了基础的一个条件的查询,如果多条件,涉及到逻辑运算,and or 之类的。就是高级一点的条件查询。本章来介绍复杂的条件搜索表达式。 AND运算符 AND运算符只有当两边操作数均为True时,最后结果才为True。人们使用AND描述…...
《Terraform 101 从入门到实践》 第四章 States状态管理
《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新,书中的示例代码也是放在GitHub上,方便大家参考查看。 军书十二卷,卷卷有爷名。 为什么需要状态管理 Terraform的主要作用是管理云平台上的资源ÿ…...
数据结构之二叉树
🎈一.二叉树相关概念 1.树 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合,树结构通常用来存储逻辑关系为 "一对多" 的数据。例如: 关于树的几个重要概念&…...
上海亚商投顾:三大指数集体调整 消费板块逆市活跃
上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。市场情绪三大指数今日集体调整,沪指全天弱势震荡,创业板指盘中跌超1%。旅游、食品、乳业等大消费板块…...
【2023unity游戏制作-mango的冒险】-开始画面API制作
👨💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏:游戏制作 ⭐mango的冒险-开始画面制作⭐ 文章目录⭐mango的冒险-开始画面制作⭐👨&…...
【微服务】Nacos配置管理
🚩本文已收录至专栏:微服务探索之旅 👍希望您能有所收获 Nacos除了可以做配置管理,同样可以当作注册中心来使用。 了解注册中心用法点击跳转👉【微服务】Nacos注册中心 一.引入 当微服务部署的实例越来越多࿰…...
【C++】类与对象理解和学习(上)
专栏放在【C知识总结】,会持续更新,期待支持🌹类是什么?类是对对象进行描述的,是一个模型一样的东西,限定了类有哪些成员,定义出一个类并没有分配实际的内存空间来存储它(实例化后才…...
Pyqt5小案例,界面与逻辑分离的小计算器程序
直接看下最终效果: 使用技术总结 使用Designer设计界面 使用pyuic5命令导出到python文件 新建逻辑处理文件,继承pyuic5导出的文件的类,在里面编写信号与槽的处理逻辑 使用Designer设计界面 要使用Designer,安装一个Python库即…...
leaflet加载KML文件,显示图形(方法2)
第049个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中加载KML文件,将图形显示在地图上。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetMap无法加载,请加载其他来练习 文章目录 示例效果配置方式示例源代码(共66…...
Mysql 部署 MGR 集群
0. 参考文章 官方文档: MySQL :: MySQL 8.0 Reference Manual :: 18.2 Getting Started 博客: MGR 单主模式部署教程(基于 MySQL 8.0.28) - 墨天轮 (modb.pro) mysql MGR单主模式的搭建 - 墨天轮 (modb.pro) MySQL 5.7 基于…...
迁移至其他美国主机商时需要考虑的因素
网站的可访问性是关系业务的关键因素之一。一个稳定、快速且优化良好的主机上的网站更有可能享受不间断的流量,并在谷歌的SERP中获得更好的排名。因此,在构建企业网站时,选择合适的主机商相当重要。不过就以美国主机为例,由于每个…...
【数据结构】第二章 线性表
文章目录第二章 知识体系2.1 线性表的定义和基本操作2.1.1 线性表的定义2.1.2 线性表的基本操作2.2 线性表的顺序表示2.2.1 顺序表的定义2.2.2 顺序表的基本操作的实现2.3 线性表的链式表示2.3.1 单链表的定义2.3.2 单链表的基本操作实现2.3.3 双链表2.3.4 循环链表2.3.5 静态链…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
《通信之道——从微积分到 5G》读书总结
第1章 绪 论 1.1 这是一本什么样的书 通信技术,说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号(调制) 把信息从信号中抽取出来&am…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
[免费]微信小程序问卷调查系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的微信小程序问卷调查系统(SpringBoot后端Vue管理端)【论文源码SQL脚本】,分享下哈。 项目视频演示 【免费】微信小程序问卷调查系统(SpringBoot后端Vue管理端) Java毕业设计_哔哩哔哩_bilibili 项…...
