☀️光天化日学C语言☀️(03)- 变量 | 万物皆变化,唯有初心不变

举报
英雄哪里出来 发表于 2021/06/18 20:54:41 2021/06/18
【摘要】 万物皆变化,唯有初心不变

一、前言

  本文作者是从 2007 年开始学 C语言 的,不久又接触了C++,基本就是 C/C++ 技术栈写了 14 年的样子,不算精通,但也算差强人意。著有《夜深人静写算法》系列,且承诺会持续更新,直到所有算法都学完。主要专攻 高中 OI 、大学 ACM、 职场 LeetCode 的全领域算法。由于文章中采用 C/C++ 的语法,于是就有不少读者朋友反馈语言层面就被劝退了,更何况是算法。
  于是,2021 年 06 月 12 日,《光天化日学C语言》 应运而生。并且作者在此承诺,这个系列全部文章均免费且开源,主要服务于高中生、大学生以及职场上想入坑C语言的志同道合之人,希望能给祖国引入更多编程方面的人才,并且让自己的青春不留遗憾!
  本章的内容主要将介绍变量的定义、赋值、初始化以及一些常用的内置数据类型。

二、人物简介

  • 第一位登场的就是今后会一直教我们C语言的老师 —— 光天。
  • 第二位登场的则是今后会和大家一起学习C语言的没什么资质的小白程序猿 —— 化日。
    在这里插入图片描述

三、变量

在这里插入图片描述

1、变量的定义

对于一个变量而言,有三部分组成:
  1)变量类型;
  2)变量名;
  3)变量地址;

  • 在C语言中,我们可以通过如下的方式定义一个变量:
    int Iloveyou;

1)变量类型

  • int表示变量类型,是英文单词 Integer 的缩写,意思是整数。

在这里插入图片描述

2)变量名

  • Iloveyou表示变量名,也可以叫其它名字,例如:WhereIsHeroFromILoveYou1314等等。
  • 这个语句的含义是:在内存中找一块区域,命名为Iloveyou,用它来存放整数。
  • 需要注意的是,最后有一个分号,int Iloveyou表达了一个语句,要用分号来结束。

在这里插入图片描述

3)变量地址

在这里插入图片描述

2、变量的赋值

  • C语言中可以用以下语句把 520 520 这个整数存储到Iloveyou这个变量里:
    Iloveyou = 520;

在这里插入图片描述

  • =在数学中叫 “等于号”,例如 1 + 1 = 2,但在C语言中,这个过程叫做变量的赋值,简称赋值。赋值是指把数据放到内存的过程。

3、变量的初始化

  • 把上面的两个语句连起来,得到:
    int Iloveyou;
    Iloveyou = 520;
  • 当然,我们也可以写成如下形式:
    int Iloveyou = 520;

在这里插入图片描述

  • 两段代码的执行结果相同,都是把Iloveyou的值变成 520 520

在这里插入图片描述

4、变量的由来

  • 如果我们需要,可以随时改变它的值,如下代码所示:
    int Iloveyou = 520;
    Iloveyou = 521;
    Iloveyou = 522;
    Iloveyou = 523;
  • 代码执行完毕以后,它的值以最后一次赋值为准,正因为可以不断修改,是可变的,所以才叫变量。

  • 简单总结一下就是:数据是放在内存中的,变量是给这块内存起的名字,有了变量就可以找到并使用这份数据。

5、多变量的定义

  • 如果几个变量的类型一致,我们可以写在一行上进行定义,如下:
    int x, y, z = 5;
  • 这段代码代表一次性定义了三个整型类型的变量,并且将z初始化为 5,等价于如下代码:
    int x; 
    int y;
    int z = 5;

6、变量间的赋值

  • 变量不能赋值给数字,但是变量可以赋值给变量。
    int a, b;
    520 = a;  // 错误
    a = b;    // 正确

在这里插入图片描述

【例题1】给出如下代码,求输出结果是什么。

#include <stdio.h>
int main()
{
    int a = 1314, b = 520;
    b = a;
    a = b;
    printf("a=%d b=%d\n", a, b);
    return 0;
}

四、数据类型

在这里插入图片描述

  • 接下来我们展开来讲一下变量类型,更加确切的讲,应该叫数据类型,C语言中有如下一些系统内置数据类型。

1、内置数据类型

  • 从上面这个表,我们可以看到,有表示字符的,有表示整数的,也有表示浮点数的。

在这里插入图片描述

  • 先来简单看下每种内置类型是如何进行定义的:
    char a = 'a';
    short b, c, d = 1314, e, f;
    int g = 5201314;
    long long h = 123456789;
    float i = 4.5;
    double j = 4.50000;

2、数据的大小

在这里插入图片描述

  • 字节是计算机中的一种基本单位,英文名为 Byte,计算机中所有的数据都是由字节组成的。
  • 我们通常在计算机中看到的文件单位 B 、K、M 、G、T 和字节的关系如下:

  • 一个字节在计算机里面是有 8 个位组成,一个位有 0 和 1 两种状态,所以一个字节能表示的状态数就是 2 8 = 256 2^8 = 256 。如图四-2-1,代表的是一个字节的状态,白色代表0,灰色代表1,它的二进制表示就是 ( 00001101 ) 2 (00001101)_2
    图四-2-1

3、整数的表示范围

  • 这样一来,上面提到的几种整数类型,能够表示的整数就显而易见了,假设字节数为 n n ,那么能够表示的整数个数就是能够表示的状态个数,即: 2 8 n 2^{8n}
  • 由于我们需要表示负数 和 零,实际的每种整数数据类型能够表示的数字范围如下表所示:

* 实际上,还有无符号整数,不影响今天的内容,所以我想留在后面的章节再来展开。以及浮点数的内容,整数和浮点数的存储方式,也会在后面的章节继续详细讲解。

五、变量名命名规则

  • 变量名需要满足如下命名规则:
  • ( 1 ) (1) 必须由字母、数字 或者下划线构成,如 _aaa123_都是合法的变量,?a a#都是非法的变量;
  • ( 2 ) (2) 不能以数字开头,如123abc不是一个合法的变量名;
  • ( 3 ) (3) 大小写敏感,即大小写看成不同,即oO不是同一个变量;
  • ( 4 ) (4) 不能将变量名和C语言的语法保留关键字(例如:int、float、double 这些)同名;

【例题2】给出一段程序,请回答这段程序的运行结果。

#include <stdio.h>

int main()
{
	int IloveYou = 0;
	ILoveYou = 1314;
	ILoveYou = ILoveYou;
	ILoveYou = 520;
	printf("%d\n", ILoveYou);
    return 0;
}

  • 通过这一章,我们学会了 变量的定义、赋值、初始化,以及变量名命名规则,常用的数据类型,希望对你有帮助哦 ~ 祝大家早日成为 C 语言大神!

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

举报
请填写举报理由
0/200