C语言学习_DAY_2_变量的定义_输入与输出

news2024/11/28 19:47:33

高质量博主,点个关注不迷路🌸🌸🌸

目录

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变量的值输出到控制台。

这个简单的程序会放在评论区,有兴趣的初学者可以进行尝试!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

丝绸之路——NFT 系列来袭!

丝绸之路的经历讲述了汉朝时代的一个重要历史事件。该系列中的 NFT 带有中国这段黄金时代令人愉悦的视觉元素&#xff0c;使其成为值得收藏的物品。 NFT 系列介绍 敦煌女神像01&#xff08;左&#xff09;&#xff1b;汉代士兵&#xff08;中&#xff09;&#xff1b;敦煌女神像…

Matlab与ROS(1/2)链接与入门(一)

0. 简介 Matlab作为广大学生以及算法工程师常用的软件&#xff0c;因其良好的可视化以及矩阵适应能力&#xff0c;使其得到了广泛的使用。同时ROS作为机器人、自动驾驶领域最常用的软件&#xff0c;其与Matlab结合在一起也是理所当然的。为此这一系列就是来带领读者熟悉并了解…

说说连接查询有哪些以及它们之间的区别?

一、左连接 -- 左连接 select t1.a,t2.b from (select 1 a from DUAL union ALL select 1 a from DUAL union ALL select 2 a from DUAL union ALL select 2 a from DUAL union ALL select 3 a from DUAL)t1 LEFT JOIN (select 1 b from DUAL union ALL select 2 b from DUAL …

【成为架构师课程系列】大数据技术体系精华总结【值得收藏!】

目录 大数据技术总结 #大纲 #概念 #应用 #难题 #技术栈 #大数据架构 #1. 数据收集

git报错大全,你将要踩的坑我都帮你踩了系列

使用git push -u origin master报下面的错&#xff1a; 使用git push -u origin master报下面的错&#xff1a; Updates were rejected because the remote contains work that you do not have locally&#xff0c;This is usually caused by another repository pushing to …

kubernetes基础

文章目录1.k8s1.概念2.特性3.核心组件1.k8s 1.概念 用于自动部署、扩展和管理“容器化&#xff08;containerized&#xff09;应用程序”的开源系统。 可以理解成 K8S 是负责自动化运维管理多个容器化程序&#xff08;比如 Docker&#xff09;的集群&#xff0c;是一个生态极…

【刷题笔记】--验证二叉搜索树--min,max参与递归

题目&#xff1a; 给你一个二叉树的根节点 root &#xff0c;判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下&#xff1a; 节点的左子树只包含 小于 当前节点的数。 节点的右子树只包含 大于 当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例…

【大唐杯备考】——5G基站开通与调测(学习笔记)

&#x1f4d6; 前言&#xff1a;本期介绍5G基站开通与调测。 目录&#x1f552; 1. 概述&#x1f552; 2. 5G基站开通与调测基础&#x1f558; 2.1 3.5GHz单模100MHz配置&#xff08;S111&#xff09;&#x1f558; 2.2 3.5GHz单模100MHz配置&#xff08;S111111&#xff09;&a…

车载以太网 - SomeIP - 杂项 - 09

SomeIP-SD Find Service Timing - 服务发现相关时间参数参数描述最小值标准值最大值T_Initial初始化时间0msNA1000msTTL生存时间NA5000msNAT_Cycle_Offer_Msg提供服务报文周期950ms1000ms1050msRepetition_Max最大重复次数NA3次NAInitial_dealy_Min初始化最小延迟NA90msNAIniti…

Spring、SpringMVC、Shiro、Maven

一、SpringSpring是一个为了解决企业应用程序开发复杂性而创建的开源框架&#xff0c;其核心是IOC–控制反转、AOP–面向切面编程。框架的主要优势之一就是其分层架构&#xff08;WEB层&#xff08;springMvc&#xff09;、业务层&#xff08;Ioc&#xff09;、持久层&#xff…

面向对象的基本概念和方法

面向对象的开发方法在近几十年见得以广泛应用&#xff0c;我们常见的Java语言就是一种典型的面向对象的开发语言。然而&#xff0c;面向对象的概念较为复杂&#xff0c;知识点也很细碎&#xff0c;本文整理了面向对象的基本概念和方法&#xff0c;供大家参考。为了便于读者理解…

Java笔记-多线程高阶

目录一、多线程1.为什么使用多线程&#xff1a;2.多线程使用场景&#xff1a;3.使用多线程要考虑的因素&#xff1a;二、线程间竞争对象锁的过程三、synchronized关键字1.synchronized的作用&#xff1a;2.synchronized执行效率&#xff1a;3.synchronized实现原理&#xff1a;…

P14 PyTorch AutoGrad

前言&#xff1a;激活函数与loss的梯度PyTorch 提供了Auto Grad 功能&#xff0c;这里系统讲解一下torch.autograd.grad系统的工作原理&#xff0c;了解graph 结构目录&#xff1a;1: require_grad False2: require_grad True3&#xff1a; 多层bakcward 原理4&#xff1a; in…

YOLO-V4经典物体检测算法介绍

在前文我们介绍了YOLO-V1~V3版本都做了哪些事&#xff0c;本文我们继续介绍YOLO-V4版本。YOLO的作者在发表完V3之后&#xff0c;发现YOLO产品被美国军方应用到了很多军事战争当中&#xff0c;这是他所不希望看见的&#xff0c;因此宣布不再继续研究。但历史和科技总是随时间不断…

(第五章)OpenGL超级宝典学习:统一变量(uniform variable)

统一变量 前言 本篇在讲什么 本篇记录对glsl中的变量uniform的认知和学习 本篇适合什么 适合初学Open的小白 适合想要学习OpenGL中uniform的人 本篇需要什么 对C语法有简单认知 对OpenGL有简单认知 最好是有OpenGL超级宝典蓝宝书 依赖Visual Studio编辑器 本篇的特色 …

设计模式-组合模式和建筑者模式详解

一. 组合模式1. 背景在现实生活中&#xff0c;存在很多“部分-整体”的关系&#xff0c;例如&#xff0c;大学中的部门与学院、总公司中的部门与分公司、学习用品中的书与书包、生活用品中的衣月艮与衣柜以及厨房中的锅碗瓢盆等。在软件开发中也是这样&#xff0c;例如&#xf…

spring注解的开端(@Component替代bean标签的使用)

目录 一、介绍 1.什么是注解开发&#xff1f; 2.Spring注解的版本 3.基于spring注解的应用 4. Component的细分注解 5.相关注解 二、简单例子讲解 1.类打注解 2.扫描注解放入工厂 3.总工厂取注解调用 4.运行结果 总结&#xff1a; 一、介绍 1.什么是注解开发&…

人工智能聊天工具ChatGPT为Delphi写的诗歌

现在每个人似乎都在谈论 ChatGPT&#xff0c;所以这里有一首关于我们最喜欢的开发工具Delphi的好诗&#xff0c;来自 ChatGPT 生成的 Embarcadero 的 Delphi。 Delphi&#xff0c;哦&#xff0c;Delphi&#xff01; 作者&#xff1a;ChatGPT Delphi&#xff0c;哦&#xff0c;…

java面试题(十九) Mybatis

4.1 谈谈MyBatis和JPA的区别 参考答案 ORM映射不同&#xff1a; MyBatis是半自动的ORM框架&#xff0c;提供数据库与结果集的映射&#xff1b; JPA&#xff08;默认采用Hibernate实现&#xff09;是全自动的ORM框架&#xff0c;提供对象与数据库的映射。 可移植性不同&…

166_技巧_Power BI 窗口函数处理连续发生业务问题

166_技巧_Power BI 窗口函数处理连续发生业务问题 一、背景 在生产经营的数据监控中&#xff0c;会有一类指标需要监控是否连续发生&#xff0c;从而根据其在设定区间中的连续频次来评价业务。 例如&#xff1a; 员工连续迟到天数。销售金额连续上升或者下降。用户连续登陆…