文章目录
一.变量和常量的定义
变量:在程序执行过程中其值可以改变的量为变量。
常量:在程序执行过程中其值保持不变的量为常量。
(通俗来说变量就是能被改变的量,常量就是不能改变的量)
二.变量
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,叫赋初值,不能算改变它的值。
四.结语
本人水平有限,免不了一些错误和不足之处,希望各位小伙伴能在评论区进行批评改正,感谢各位的阅读,希望大家能有所收获。