☀️光天化日学C语言☀️(03)- 变量 | 万物皆变化,唯有初心不变
【摘要】 万物皆变化,唯有初心不变
一、前言
本文作者是从 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
表示变量名,也可以叫其它名字,例如:WhereIsHeroFrom
、ILoveYou1314
等等。- 这个语句的含义是:在内存中找一块区域,命名为
Iloveyou
,用它来存放整数。 - 需要注意的是,最后有一个分号,
int Iloveyou
表达了一个语句,要用分号来结束。
3)变量地址
2、变量的赋值
- C语言中可以用以下语句把
这个整数存储到
Iloveyou
这个变量里:
Iloveyou = 520;
=
在数学中叫 “等于号”,例如1 + 1 = 2
,但在C语言中,这个过程叫做变量的赋值,简称赋值。赋值是指把数据放到内存的过程。
3、变量的初始化
- 把上面的两个语句连起来,得到:
int Iloveyou;
Iloveyou = 520;
- 当然,我们也可以写成如下形式:
int Iloveyou = 520;
- 两段代码的执行结果相同,都是把
Iloveyou
的值变成 ;
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-1,代表的是一个字节的状态,白色代表0,灰色代表1,它的二进制表示就是
。
图四-2-1
3、整数的表示范围
- 这样一来,上面提到的几种整数类型,能够表示的整数就显而易见了,假设字节数为 ,那么能够表示的整数个数就是能够表示的状态个数,即: 。
- 由于我们需要表示负数 和 零,实际的每种整数数据类型能够表示的数字范围如下表所示:
* 实际上,还有无符号整数,不影响今天的内容,所以我想留在后面的章节再来展开。以及浮点数的内容,整数和浮点数的存储方式,也会在后面的章节继续详细讲解。
五、变量名命名规则
- 变量名需要满足如下命名规则:
-
必须由字母、数字 或者下划线构成,如
_aa
,a123
,_
都是合法的变量,?
、a a
、#
都是非法的变量; -
不能以数字开头,如
123abc
不是一个合法的变量名; -
大小写敏感,即大小写看成不同,即
o
和O
不是同一个变量; - 不能将变量名和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语言(01)- 第一个C语言程序 中提到的在线编译环境中将代码一行一行敲出来,看看和你自己想的结果是否一致。
- 通过这一章,我们学会了 变量的定义、赋值、初始化,以及变量名命名规则,常用的数据类型,希望对你有帮助哦 ~ 祝大家早日成为 C 语言大神!
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)