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

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_变量的定义_输入与输出

高质量博主&#xff0c;点个关注不迷路&#x1f338;&#x1f338;&#x1f338;&#xff01; 目录 I. 变量的定义 II. 变量的赋值 III. 输出 IV. 输入 I. 变量的定义 首先&#xff0c;我们新建一个.c文件在Dev C中&#xff0c;并把之前定义好的程序框架放进去。 此时我…...

mac 安装navicat

由于各种原因发布不了链接&#xff0c;这里记录下&#xff0c;保存在了阿里云里...

RocketMQ快速入门

2.1 消息生产和消费介绍使用RocketMQ可以发送普通消息、顺序消息、事务消息&#xff0c;顺序消息能实现有序消费&#xff0c;事务消息可以解决分布式事务实现数据最终一致。RocketMQ有2种常见的消费模式,分别是DefaultMQPushConsumer和DefaultMQPullConsumer模式&#xff0c;这…...

【虚拟仿真】Unity3D实现从浏览器拉起本地exe程序并传参数

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 最近有项目需求&#xff0c;从浏览器调起来本地的exe程序&…...

Intel中断体系(1)中断与异常处理

文章目录概述中断与异常中断可屏蔽中断与不可屏蔽中断&#xff08;NMI&#xff09;异常异常分类中断与异常向量中断描述符表中断描述符中断与异常处理中断与异常处理过程堆栈切换错误码64位模式下的中断异常处理64位中断描述符64位处理器下的堆栈切换相关参考概述 中断是现代计…...

财报解读:四季度营收超预期,优步却越来越“不务正业”了

“公司第四季度的业绩表现将是强劲的”。 公布2022年第三季度财报时&#xff0c;优步的高管给出了这样的预告&#xff0c;给资本市场打了一针“强心剂”。然而有人对此表示质疑&#xff0c;后疫情时代&#xff0c;带着新模式、新车型的全新网约车公司层出不穷&#xff0c;车企…...

C语言-程序环境和预处理(14.2)

目录 预处理详解 1.预定义符号 2. #define 2.1 #define定义标识符 2.2 #define 定义宏 2.3 #define 替换规则 注意事项&#xff1a; 2.4 #和## 2.5 带副作用的宏参数 2.6 宏和函数对比 3. #undef 4. 条件编译 4.1 单分支条件编译 4.2 多分支条件编译 4.3 判断是…...

VHDL语言基础-时序逻辑电路-计数器

目录 计数器的设计&#xff1a; 计数器的作用&#xff1a; 计数器的实现&#xff1a; 1、用“”函数描述&#xff1a; 用T触发器级联构成的串行进位的二进制加法计数器的仿真波形&#xff1a; 计数器的仿真&#xff1a; 计数器的设计&#xff1a; 计数是一种最简单基本的…...

MySQL数据库07——高级条件查询

前面一章介绍了基础的一个条件的查询&#xff0c;如果多条件&#xff0c;涉及到逻辑运算&#xff0c;and or 之类的。就是高级一点的条件查询。本章来介绍复杂的条件搜索表达式。 AND运算符 AND运算符只有当两边操作数均为True时&#xff0c;最后结果才为True。人们使用AND描述…...

《Terraform 101 从入门到实践》 第四章 States状态管理

《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新&#xff0c;书中的示例代码也是放在GitHub上&#xff0c;方便大家参考查看。 军书十二卷&#xff0c;卷卷有爷名。 为什么需要状态管理 Terraform的主要作用是管理云平台上的资源&#xff…...

数据结构之二叉树

&#x1f388;一.二叉树相关概念 1.树 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合&#xff0c;树结构通常用来存储逻辑关系为 "一对多" 的数据。例如&#xff1a; 关于树的几个重要概念&…...

上海亚商投顾:三大指数集体调整 消费板块逆市活跃

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。市场情绪三大指数今日集体调整&#xff0c;沪指全天弱势震荡&#xff0c;创业板指盘中跌超1%。旅游、食品、乳业等大消费板块…...

【2023unity游戏制作-mango的冒险】-开始画面API制作

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 秩沅 原创 收录于专栏&#xff1a;游戏制作 ⭐mango的冒险-开始画面制作⭐ 文章目录⭐mango的冒险-开始画面制作⭐&#x1f468;‍&…...

【微服务】Nacos配置管理

&#x1f6a9;本文已收录至专栏&#xff1a;微服务探索之旅 &#x1f44d;希望您能有所收获 Nacos除了可以做配置管理&#xff0c;同样可以当作注册中心来使用。 了解注册中心用法点击跳转&#x1f449;【微服务】Nacos注册中心 一.引入 当微服务部署的实例越来越多&#xff0…...

【C++】类与对象理解和学习(上)

专栏放在【C知识总结】&#xff0c;会持续更新&#xff0c;期待支持&#x1f339;类是什么&#xff1f;类是对对象进行描述的&#xff0c;是一个模型一样的东西&#xff0c;限定了类有哪些成员&#xff0c;定义出一个类并没有分配实际的内存空间来存储它&#xff08;实例化后才…...

Pyqt5小案例,界面与逻辑分离的小计算器程序

直接看下最终效果&#xff1a; 使用技术总结 使用Designer设计界面 使用pyuic5命令导出到python文件 新建逻辑处理文件&#xff0c;继承pyuic5导出的文件的类&#xff0c;在里面编写信号与槽的处理逻辑 使用Designer设计界面 要使用Designer&#xff0c;安装一个Python库即…...

leaflet加载KML文件,显示图形(方法2)

第049个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中加载KML文件,将图形显示在地图上。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetMap无法加载,请加载其他来练习 文章目录 示例效果配置方式示例源代码(共66…...

Mysql 部署 MGR 集群

0. 参考文章 官方文档&#xff1a; MySQL :: MySQL 8.0 Reference Manual :: 18.2 Getting Started 博客&#xff1a; MGR 单主模式部署教程&#xff08;基于 MySQL 8.0.28&#xff09; - 墨天轮 (modb.pro) mysql MGR单主模式的搭建 - 墨天轮 (modb.pro) MySQL 5.7 基于…...

迁移至其他美国主机商时需要考虑的因素

网站的可访问性是关系业务的关键因素之一。一个稳定、快速且优化良好的主机上的网站更有可能享受不间断的流量&#xff0c;并在谷歌的SERP中获得更好的排名。因此&#xff0c;在构建企业网站时&#xff0c;选择合适的主机商相当重要。不过就以美国主机为例&#xff0c;由于每个…...

【数据结构】第二章 线性表

文章目录第二章 知识体系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 静态链…...

Vue项目中el-tabs标签栏的5个高级用法与避坑指南

Vue项目中el-tabs标签栏的5个高级用法与避坑指南 在Vue生态中&#xff0c;Element UI的el-tabs组件是构建标签式界面的首选方案。但很多开发者仅停留在基础使用层面&#xff0c;未能充分发挥其潜力。本文将揭示五个高阶技巧&#xff0c;助你打造更灵活、高效的标签系统。 1. 标…...

QT加载动画卡顿?试试用QMovie+多线程优化你的等待提示框性能

QT加载动画性能优化实战&#xff1a;用QMovie与多线程打造流畅等待体验 当用户点击一个需要长时间处理的按钮时&#xff0c;那个旋转的小圆圈突然卡住不动了——这是许多QT开发者都遇到过的尴尬场景。更糟的是&#xff0c;整个界面随之冻结&#xff0c;用户只能无奈地看着无响应…...

OpenClaw与nanobot镜像结合:打造个人AI研究助手全流程

OpenClaw与nanobot镜像结合&#xff1a;打造个人AI研究助手全流程 1. 为什么需要个人AI研究助手&#xff1f; 作为一名经常需要阅读大量论文的研究者&#xff0c;我发现自己每天要重复处理许多机械性工作&#xff1a;在多个学术平台检索最新文献、下载PDF并分类存储、提取关键…...

从数据包到DMA:图解GMAC传输描述符的完整生命周期(含TSO/VLAN案例)

从数据包到DMA&#xff1a;图解GMAC传输描述符的完整生命周期&#xff08;含TSO/VLAN案例&#xff09; 在网络硬件加速领域&#xff0c;GMAC&#xff08;Gigabit Media Access Control&#xff09;接口的传输描述符机制是提升数据吞吐效率的核心技术之一。本文将深入剖析一个网…...

FlowState Lab少样本学习效果:仅用10条数据生成特定波动模式

FlowState Lab少样本学习效果&#xff1a;仅用10条数据生成特定波动模式 1. 引言&#xff1a;当数据稀缺遇上智能生成 想象一下这样的场景&#xff1a;你手里只有10条设备振动波形数据&#xff0c;却需要分析上千种可能的故障模式。传统方法可能需要收集数月甚至数年的运行数…...

【FastAPI 2.0流式AI响应终极指南】:20年架构师亲授异步SSE/Chunked Transfer实战避坑清单

第一章&#xff1a;FastAPI 2.0流式AI响应面试概览在现代AI应用开发中&#xff0c;面试场景下的实时交互体验正成为关键评估维度。FastAPI 2.0 引入了对原生异步流式响应&#xff08;StreamingResponse&#xff09;的深度优化&#xff0c;支持 Server-Sent Events&#xff08;S…...

OpenClaw故障自愈方案:Qwen3-32B镜像异常重启监控

OpenClaw故障自愈方案&#xff1a;Qwen3-32B镜像异常重启监控 1. 问题背景与解决思路 上周我的OpenClaw自动化助手突然"罢工"了——原本应该定时执行的日报生成任务没有按时完成。排查后发现是底层Qwen3-32B模型服务因OOM异常退出。这种情况在长期运行的AI服务中并…...

League Akari:5大核心解决方案提升英雄联盟游戏体验

League Akari&#xff1a;5大核心解决方案提升英雄联盟游戏体验 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是一…...

参数估计实战:从置信区间构建到样本量计算的完整指南

1. 参数估计的核心逻辑&#xff1a;从抽样到推断 第一次接触参数估计时&#xff0c;我盯着那个95%置信区间看了半小时——它既不像天气预报的降水概率&#xff0c;也不像考试分数的百分比排名。后来在分析用户行为数据时才恍然大悟&#xff1a;参数估计本质是用样本数据给总体参…...

Android 基于ViewPager2+ExoPlayer+VideoCache 打造短视频无缝预加载方案

1. 为什么需要短视频无缝预加载方案 刷短视频已经成为现代人日常娱乐的重要方式&#xff0c;但卡顿、加载慢这些问题总是让人抓狂。想象一下&#xff0c;当你滑动到下一个视频时&#xff0c;如果出现黑屏等待&#xff0c;体验就会大打折扣。这正是我们需要实现无缝预加载的关键…...