生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等)
有些值是可变的(比如:年龄,体重,薪资)。
不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。
1.定义变量的方法
语法:数据类型 变量名 = 要初始化的值
int age = 150; float weight = 45.5f; char ch = 'w';
2.变量命名的要求
1.只能由字母(包括大写和小写)、数字和下划线( _ )组成。
2.不能以数字开头。
3.长度不能超过63个字符。
4.变量名中区分大小写的。
5.变量名不能使用关键字。
#include <stdio.h> int main() { int d_9 = 8; //int 6_p = 7; int a = 3; int A = 4; printf("a=%d A=%d", a, A); //int if = 9; return 0;
3.变量的分类
变量分为局部变量和全局变量,我们可以这样理解:
- 1.全局变量就是定义在{ }外部的变量,全局变量如果不初始化默认值为0。
局部2.变量就是定义在{ }外部的变量。 - 然后思考一个问题,局部变量和全局变量可以同名吗?
答案是可以的!
看这样一段代码:
#include <stdio.h> int global = 2019;//全局变量 int main() { int local = 2018;//局部变量 //下面定义的global会不会有问题? int global = 2020;//局部变量 printf("global = %d\n", global); return 0; }
但是,我们不建议将局部变量和全局变量的名字写成一样的。
4.变量的作用域和生命周期
首先我们要知道什么是作用域?
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用的而限定这个名字的可用性的代码范围就是这个名字的作用域。
1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。
看一段代码:
void test() { int i = 9; printf("%d\n", p); } #include <stdio.h> int p = 8; int main() { test(); printf("%d\n", i); printf("%d\n", p); return 0; }
那接下来讨论,什么是生命周期呢?
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
1. 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2. 全局变量的生命周期是:整个程序的生命周期。
5.常量
C语言中的常量和变量的定义的形式有所差异。
C语言中的常量分为以下以下几种:
字面常量
const 修饰的常变量
#define 定义的标识符常量
枚举常量
1. 首先介绍字面常量:
就像3.14,100,‘a’ , “abcdf”.这些都是字面常量2. const 修饰的常变量
int main() { 3.14; 5; 300; 's'; "adsfis";//这些都是字面常量 "hello world"; return 0; }
2. const 修饰的常变量
const 修饰的常变量在C语言中只是在语法层面限制了该变量不能直接被改变,但是本质上还是一个变量,所以叫常变量。
举个例子:
#include <stdio.h> int main() { const int i = 9; i = 0; return 0; }
3.#define 定义的标识符常量
语法:#define 常量名 值
//#define 定义的标识符常量
#define max 100 int main() { max = 99; int arr[max]={0}; return 0; }
4.枚举常量
枚举常量即可以一一列举的常量,定义枚举类型需要使用枚举关键字enum。
enum是计算机编程语言中的一种数据类型。枚举类型:在实际问题中,有些变量的取值被限定在一个有限的范围内。例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等。如果把这些量说明为整型,字符型或其它类型显然是不妥当的。为此,C语言提供了一种称为“枚举”的类型。在“枚举”类型的定义中列举出所有可能的取值,被说明为该“枚举”类型的变量取值不能超过定义的范围。应该说明的是,枚举类型是一种基本数据类型,而不是一种构造类型,因为它不能再分解为任何基本类型。
举个例子,比如说性别,对于性别来说,男和女,我们是可以一一列举出来的,上代码:
#include <stdio.h> int main() { enum Sex //enum枚举关键字 { MALE, FEMALE, SECRET //性别枚举类型的可能取值 }; printf("%d\n", MALE); printf("%d\n", FEMALE); printf("%d\n", SECRET); enum Sex s = MALE; //注:枚举常量的默认是从0开始,依次向下递增1的 return 0; }
以上就是对C语言中常量和变量的介绍!