初识变量常量

一.变量和常量的定义

变量:在程序执行过程中其值可以改变的量为变量。

常量:在程序执行过程中其值保持不变的量为常量。
(通俗来说变量就是能被改变的量,常量就是不能改变的量)

二.变量

1.怎么创建一个变量?

(1)类型+变量的名字=0(赋的值).

(2)类型+变量的名字.
其中我比较推荐第一种写法,它可以帮我们养成好的习惯,第二种写法语法上成立但不推荐。
下面给大家一个例子:
eg:

#include <stdio.h>
int main()
{
	int age = 20;
	return 0;
}

2.变量的分类

变量有局部变量和全局变量两种。

我通过一个简单的代码给大家讲一下:
eg:

#include <stdio.h>
//全局变量——{}外部定义的
int a = 100;
int main()
{
	//局部变量——{}内部定义的
	int a = 10;
	printf("%d\n", a);
	return 0;
}

其中{}外面的 int a =100;就是全局变量。
{}内部的 int a =10;就是局部变量。
大家可以猜一下运行结果是多少???
没错,就是10.
在这里插入图片描述
这是因为:当局部变量和全局变量名字冲突的情况下,局部优先。
不建议:把全局变量和局部变量的名字写成一样的。

3.变量的使用

这里用一个简单的例子来进行说明:

eg:
写一个代码求两个整数的和

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

4.变量的作用域

作用域:

作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用
的,而限定这个名字的可用性的代码范围就是这个名字的作用域。

(通俗的说,这个变量哪里可以使用哪里就是它的作用域。)
1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。

5.变量的生命周期

变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段

1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。

三.常量

1.字面常量

用一个简单的代码来说明一下什么是字面常量.
eg:

#include <stdio.h>
int main()
{
	//字面常量
	3.14;
	10;
	'a';
	"abcdef";
	return 0;
}

其中 3.14 ,10 ,a ,abcdef ,都是字面常量。(个人感觉没啥用)

2.const修饰的常变量

eg:

#include <stdio.h>
int main()
{
	int num = 10;
	num = 20;
	printf("num=%d\n", num);
	return 0;
}

这个代码可以运行,结果为 num=20.
当我们稍微修改一下这个代码,给 int num =10;前面加一个 const .代码如下:

#include <stdio.h>
int main()
{
	const int num = 10;
	num = 20;
	printf("num=%d\n", num);
	return 0;
}

这个时候运行就会报错.
在这里插入图片描述
这是因为当前面加了const 的时候 num 就是常变量——具有常属性(不能被改变的属性).

上面讲到 num为常变量,其中变量两字说明它也是变量.
这里我们用两个简单的代码来证明它为变量.
eg:

#include <stdio.h>
int main()
{
	int arr[10] = { 0 };
	int n = 10;
	int arr2[n] = { 0 };
	return 0;
}

这个代码运行会报错,这里运用了数组,数组规定[ ]中为常量,而 n 为变量,所以会报错.
当我们给 int n= 10;前加const ,代码如下:

#include <stdio.h>
int main()
{
	int arr[10] = { 0 };
	const int n = 10;
	int arr2[n] = { 0 };
	return 0;
}

这里依然会报错.
在这里插入图片描述
从这个可以看出它也是变量.

3.#define 定义的标识符常量

这里用一个简单的例子来进行说明:

eg:

#define MAX  10000
#include <stdio.h>
int main()
{
	int n = MAX;
	printf("n=%d\n", n);
	return 0;
}

运行结果为 n=10000;
注:

#define MAX  10000
#include <stdio.h>
int main()
{
	MAX = 20000;//err(错误)    MAX不能被修改
	int n = MAX;
	printf("n=%d\n", n);
	return 0;
}

这种写法是错误的,MAX不能被修改.

4.枚举常量

枚举常量——可以一 一列举的常量

eg:

#include <stdio.h>
//举例
enum Sex
{
	//括号中的MALE,FEMALE,SECRET是枚举常量
	MALE,
	FEMALE,
	SECRET	
};
int main()
{
	printf("%d\n", MALE);
	printf("%d\n", FEMALE);
	printf("%d\n", SECRET);
	return 0;
}

运行结果为:
在这里插入图片描述
注:枚举常量的默认是从0开始,依次向下递增1的.
注意:
下面这种写法是错误的:

#include <stdio.h>
enum Sex
{	
	MALE,
	FEMALE,
	SECRET	
};
int main()
{
	enum Sex s = MALE;
	MALE = 3;
	printf("%d\n", MALE);
	printf("%d\n", FEMALE);
	printf("%d\n", SECRET);
	return 0;
}

运行会报错:
在这里插入图片描述
注:枚举常量的值不能改.
有的人会说下面这种情况怎么说:

#include <stdio.h>
enum Sex
{	
	MALE=3,
	FEMALE,
	SECRET	
};
int main()
{
	enum Sex s = MALE;
	printf("%d\n", MALE);
	printf("%d\n", FEMALE);
	printf("%d\n", SECRET);
	return 0;
}

结果为:
在这里插入图片描述
解释:MALE=3,叫赋初值,不能算改变它的值。

四.结语

本人水平有限,免不了一些错误和不足之处,希望各位小伙伴能在评论区进行批评改正,感谢各位的阅读,希望大家能有所收获。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值