C语言入门 Day_3 整数和变量

目录

1.整型

2.变量

3.易错点

4.思维导图


前言:

昨天的课程里面,我们学会了使用printf()打印一行字母,比如

printf("Hello World!\n");

那么编程中用来表示数字的是什么类型呢?

接下来我们学习一下表示数字的整型。

1.整型

C语言中的整数(正数,零,负数)

2023
0
-1

1.正整数,2023

2.整数0

3.负整数,-1

printf("正整数%d",2023);

1.printf()“指令”

2.要输出一段字符

3.%d是一个插入符,会被后面的数字2023替代

4.换行符\n,表示这行字符输出完以后要换行

5.逗号,隔开这行字符和后面的数字

6.输出的时候要替换%d的数字

7.分号,一行代码结束的标志

我们可以看到printf()其实还是输出了一段文字字符串,我们只是把其中的%d,用整型2023替换了。

在C语言中(以及绝大多数编程语言中),表示整数的数据类型叫做整型。D表示十进制,是十进制的英文Decimal的首字母。

在编程中,可以简单理解为整数的写法和我们学过的数学没有区别。只不过当我们要用printf()输出的时候,输出十进制整数需要使用%d

1.1—我们这里加上了一个换行符\n,实际上,如果我们只是打印单个数字的话,也可以不用这个换行符,比如这里我们打印输出一个-1:

printf("%d", -1);

printf("%d",1024);

输出结果

1024

1.2-再比如写两行代码,打印输出两个数字,1和0

printf("%d",1);
printf("%d",0);

输出结果

10

还记得换行符\n的作用么?,这里的printf()就是没有换行符,所以输出了第一行的1以后,接着1的后面又输出了0:

printf("%d", 1);

printf("%d", 0);

1.3-加入换行符以后再输出一下1和0

printf("%d\n",1);
printf("%d\n",0);

输出结果

1
0

1.4-以这个空盒子为例

在编程语言中设计了一种叫做变量的机制,用来存储各式各样的数据。比如上面学到的整型数据。

变量,顾名思义,就是会变化的量,我们可以粗略的把变量理解为一个空盒子,里面可以放各种各样的,不同的数据。

接下来我们就学习一下怎么用变量。

2.变量

C语言是强类型语言,也就是说,我们需要在定义变量的时候,说明这个变量是存储什么类型数据的变量。比如我们想要这个变量存储整型,那么我们就需要这样写:

int a = 100;

其中,int表示整型的意思,它是英文单词integer的缩写。它的意思是,后面这个变量是一个整型类型的变量,只能存储整数(比如100):

int a = 100;

2.1-下面代码定义了一个变量a,并给它赋值了2023,然后打印输出了它。

int a=2023;
printf("%d",2023);

1 . int,表明后面要定义的变量是整数类型

2. a,是变量的名字

3.等号=,这是赋值符号,表示给变量a装入一个数(2023)

4.赋值的具体数据,整数2023

5.printf()语句,在屏幕上打印输出这个变量的值

2.2-我们来运行一下这两行代码,会输出2023这个整数,这是因为第一行代码,我们把2023先赋值给了变量a,第二行代码我们打印了变量a的值。

int a=2023;
printf("%d\n",2023);

2.3-以这张图为例

在图中这两行代码是等价的,右边第一行代码是定义了一个变量a,第二行代码是给这个变量赋值了100,而左边是用一行代码完成了变量的定义赋值

2.4-又如:

int b = 100;

int a;

a = 100;

int a;
a=100;
int b=100;

1.定义一个整型变量a2

2.给这个变量a赋值100

3.定义一个整型变量b,同时给它赋值100;

2.5-再看看这张图

定义就是告诉计算机,我们要在这里创造一个空盒子,赋值就是告诉计算机,我们要给这个空盒子装入一个数2023。

需要注意的是,如果我们只定义变量,不给变量赋值的话,在现在的C语言规范里,计算机会给这个空盒子装入一个0的整数,所以我们建议在定义变量的时候直接赋值,这样我们就不会忘记给变量赋值。

int a = 2023;

2.6-比如第二张图更像赋值

2.7-但如果我们只定义,不赋值呢?

根据现在的C语言规范,会给这个空盒子装入一个为0的整数。

"There are only two hard things in computer science: cache invalidation and naming things."

(计算机科学中只有两件难事:缓存失效和给事物命名。)

这个经典的引用表达了命名变量的难度。

在C语言中,变量的命名是一个重要的任务,需要选择有意义和清晰的名称,以提高代码的可读性和可维护性

2.8-下面我们将学习C语言变量命名的规则。

 变量的名字有自己的命名规则,它可以由字母,数字,和下划线(_)组成。但是,它不能以数字开头。

2.9-给变量my_age赋值18,并打印变量my_age

int my_age=18;
printf("我的年龄是%d\n",my_age);

打印结果

我的年龄是18

我们上面学到的代码都只是赋值了一次,我们能不能给同一个变量赋值多次呢?既然是叫变量,那当然是可以的

我们先给整型变量赋值2024,并且打印了一次,然后给变量赋值2025,又打印了一次。

int a=2024;
printf("%d\n",a);
a=2025;
printf("%d\n",a);

1.定义整型变量a,并赋值2024

2.打印输出变量

3.再给变量赋值2025

4.再次打印变量a

打印结果

20242025

我们可以看到,每次输出的都是当前的变量的值,其实也就是最新的变量的值。

重复赋值就像我们先给盒子装入了一个黄色球,然后我们把黄色球拿了出来,又装入了一个绿色的球,这时候盒子里面是绿色的球。

3.易错点

eg:一个int可以定义多个变量,并给它们赋值,例如int a = 0, b= 1;不同的变量之间需要用英文逗号隔开。

eg:为了代码的美观性,printf语句中, 后面可以加一个空格再写上变量名。

eg:C语言中,变量命名不能以数字开头,同时变量名中也不能包含空格,如果是以多个单词组成的变量名,我们可以用下划线_把它们连接起来。

4.思维导图

在撰写这篇文章时,我参考了《白纸编程》这个app的观点和思想,我要感谢他们对我的启发和帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/91779.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

物联网工程应用实训室建设方案

一、物联网工程应用系统概述 1.1物联网工程定义 物联网工程(Internet of Things Engineering)是一种以信息技术(IT)来改善实体世界中人们生活方式的新兴学科,它利用互联网技术为我们的日常生活活动提供服务和增益&am…

断点续传的未来发展趋势与前景展望

断点续传是一种在网络传输中断后,能够从中断的位置继续传输的技术。它可以有效地避免因为网络不稳定、服务器故障、用户操作等原因导致的传输失败,节省了用户的时间和流量,提高了传输的效率和可靠性。断点续传在很多场景中都有广泛的应用&…

怎么使用手机远程控制Win10电脑?

可以使用手机远程控制电脑吗? “近期,我将出差一段时间。问题是,我希望能够从很远的地方浏览家里电脑上的一些东西,但我不会一直随身携带笨重的笔记本电脑。我可以手机远程访问Windows电脑吗? ” 当然&am…

网络通信TCP/IP协议逐层分析数据链路层(第四十课)

Ethernet Ⅱ帧,也称为Ethernet V2帧,是如今局域网里最常见的以太帧,是以太网事实标准。如今大多数的TCP/IP应用(如HTTP、FTP、SMTP、POP3等)都是采用Ethernet II帧承载。 1、MAC地址概述 -MAC地址,即以太网地址,用来标识一个以太网上的某个单独设备或一组设备 -长度…

【LeetCode每日一题】——41.缺失的第一个正数

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 哈希表 二【题目难度】 困难 三【题目编号】 41.缺失的第一个正数 四【题目描述】 给你一个…

Open_MV学习笔记1:开发环境获取

稍微学点计算机视觉相关吧,从今天开始浅浅地学习一下Open_MV,以及回忆一下Python编程相关,Open_mv编程需要用到Python,因此设俩个专栏:Open_mv专栏与Python的专栏,大家可以与我一起,在俩者之间跳…

DIP: Spectral Bias of DIP 频谱偏置解释DIP

On Measuring and Controlling the Spectral Bias of the Deep Image Prior 文章目录 On Measuring and Controlling the Spectral Bias of the Deep Image Prior1. 方法原理1.1 动机1.2 相关概念1.3 方法原理频带一致度量与网络退化谱偏移和网络结构的关系Lipschitz-controlle…

【环境配置】Windows10终端和VSCode下能够直接打开Anaconda-Prompt

很多小伙伴在 Windows 下做深度学习开发的时候,遇到终端没有在 Linux 那么方便,那么我们现在就可以来设置一下;这样我们也可以在文件夹内部右键打开终端,也可以在 VS Code 里面新建一个虚拟环境的控制台;这里主要是针对…

【网络基础】传输层

【网络基础】传输层 文章目录 【网络基础】传输层1、端口号1.1 工具 2、UDP协议2.1 协议端格式2.2 UDP特点2.3 传输数据报2.4 缓冲区2.5 基于UDP应用层协议2.6 使用注意事项 3、TCP协议3.1 协议段格式3.2 ACK机制3.3 超时重传机制3.4 连接管理机制3.5 滑动窗口3.6 流量控制3.7 …

梅赛德斯-奔驰将成为首家集成ChatGPT的汽车制造商

ChatGPT的受欢迎程度毋庸置疑。OpenAI这个基于人工智能的工具,每天能够吸引无数用户使用,已成为当下很受欢迎的技术热点。因此,有许多公司都在想方设法利用ChatGPT来提高产品吸引力,卖点以及性能。在汽车领域,梅赛德斯…

【云计算原理及实战】初识云计算

该学习笔记取自《云计算原理及实战》一书,关于具体描述可以查阅原本书籍。 云计算被视为“革命性的计算模型”,因为它通过互联网自由流通使超级计算能力成为可能。 2006年8月,在圣何塞举办的SES(捜索引擎战略)大会上&a…

部门用户权限应用的设计和创建(进行中)

数据库表设计 代码实现之前首先是表设计, 六个基本步骤 1.需求分析 (分析用户需求,包括数据、功能和性能需求) 2.概念结构设计(主要采用 E-R图) 3.逻辑结构设计 (将ER图转换成表,实现从E-R模型到关系模型转换) 4.数据库物理设计 (为设计的…

Transformer(二)(VIT,TNT)(基于视觉CV)

目录 1.视觉中的Attention 2.VIT框架(图像分类,不需要decoder) 2.1整体框架 2.2.CNN和Transformer遇到的问题 2.3.1CNN 2.3.2Transformer 2.3.3二者对比 2.4.公式理解 3TNT 参考文献 1.视觉中的Attention 对于人类而言看到一幅图可以立…

机器学习笔记 - 基于C++的​​深度学习 二、实现卷积运算

一、卷积 卷积是信号处理领域的老朋友。最初的定义如下 在机器学习术语中: I(…)通常称为输入 K(…)作为内核,并且 F(…)作为给定K的I(x)的特征图。 虑多维离散域,我们可以将积分转换为以下求和 对于二维数字图像,我们可以将其重写为: <

STM32F103-OLED使用教程

目录 1. OLED屏介绍2. OLED如何显示一个点3. 配置OLED屏幕4. OLED显示字符串和汉字5. OLED屏幕显示图片6. 总结 1. OLED屏介绍 OLED&#xff08;Organic Light Emitting Diode&#xff09;&#xff1a;有机发光二极管OLED显示屏&#xff1a;性能优异的新型显示屏&#xff0c;具…

Jay17 2023.8.14日报 即 留校集训阶段性总结

8.14 打了moeCTF&#xff0c;还剩一题ak Web。 Jay17-集训结束阶段性总结&#xff1a; 集训产出&#xff1a; 自集训开始以来一个半月&#xff0c;最主要做的事情有三。 一是跟课程&#xff0c;复习学过的知识&#xff0c;学习新的知识&#xff1b;目前课程已大体听完&…

HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具

公文一键排版系统基本完成&#xff0c;准备继续完善SysInfo&#xff0c;增加用户帐户信息&#xff0c;其中涉及到Win32_Account结构&#xff0c;其C定义如下&#xff1a; [Dynamic, Provider("CIMWin32"), UUID("{8502C4CC-5FBB-11D2-AAC1-006008C78BC7}"…

H13-922题库 HCIP-GaussDB-OLAP V1.5

**H13-922 V1.5 GaussDB(DWS) OLAP题库 华为认证GaussDB OLAP数据库高级工程师HCIP-GaussDB-OLAP V1.0自2019年10月18日起&#xff0c;正式在中国区发布。当前版本V1.5 考试前提&#xff1a; 掌握基本的数据库基础知识、掌握数据仓库运维的基础知识、掌握基本Linux运维知识、…

idea打jar包

目录 1、打包设置 2、打包介绍 3、开始打包 1、打包设置 先设置要打包的模块信息&#xff0c;即打包进去的内容。如下图所示&#xff1a;File --> Project Structure --> Artifacts&#xff0c;点击&#xff0b;号完成模块创建&#xff0c;其中有两种方式&#xff1a;…

SpringBoot整合、SpringBoot与异步任务

目录 一、背景描述二、简单使用方法三、原理五、使用自定义线程池1、默认使用2、如何使用自定义线程池 六、Async失效情况1、同一个类中&#xff0c;一个方法调用 Async标注的方法 一、背景描述 java 的代码是同步顺序执行&#xff0c;当我们需要执行异步操作时我们通常会去创…