常量和变量
生活中的有些值是不变的(比如:圆周率,性别,身份证号码,血型等等),有些值是可变的(比如:年龄,体重,薪资)。不变的值,C语言中用常量的概念来表示,变得值C语言中用变量来表示。
1.1变量的命名
1只能用数字,字母(包括大小写)和下划线组成(_)。
2不能以数字开头。
3长度不超过63。
4变量名要区分大小写
A1_ //正确定义变量名 2b_//错误,因为不能以数字开头 //A1_和a1_不同,注意区分
1.2定义变量的方法
数据类型+变量名=赋值
int a=0; int weight=60; //创建a和weight两个变量
1.3变量的分类
全局变量
局部变量
简单理解就是在{}外的就是全局变量,在{}内的就是局部变量
#include<stdio.h> int a=100 ; //全局变量 int main() { { int b=20; printf("%d\n",b);//局部变量 } printf("%d\n",a); return 0; }
变量的使用
在介绍变量的使用之前,我先介绍两个函数的使用
printf用于函数输出 scanf用于函数输入 最重要的是scanf要用取地址&
printf("%d",100); scanf("%d",&a);
在VS这种编译器里面会对scanf函数进行警告,VS会感觉scanf函数不安全,它会建议我们使用scanf_s来替换scanf,但是,scanf_s只是VS里面所提供的,当我们将代码转移到其他编译器里面的时候,将不能编译,所以,scanf_s只能在VS里面使用,无法体现代码的跨平台性,那我们要解决这个问题,只需在我们的代码的第一行,#define _CRT_SECURE_NO_WARNINGS 1 ,就可以解决scanf函数警告。
1.4变量的作用域和生命周期
作用域
作用域(scope)是程序设计概念,通常来说,一段程序代码中所用到的名字并不总是有效/可用
的 ,而限定这个名字的可用性的代码范围就是这个名字的作用域。
- 局部变量的作用域是变量所在的局部范围。
- 全局变量的作用域是整个工程。
生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段 - 局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
- 全局变量的生命周期是:整个程序的生命周期。
2 常量
在C语言中,常量可以分为以下几种
1字面常量'a' 2 3.14
这种直接输入的就是字面常量
2const修饰的常变量,虽然叫做常变量, 但是它的本质还是变量
int main() { const int a = 2; int arr1[a] = { 0 }; return 0; }
我们可以看到VS的报错,因为arr1[]中必须是常量
被const修饰之后的变量不能修改,但是在本质上还是一个变量,并不能说加上const就是一个常量。
3#define定义的标识符常量
5枚举常量
枚举用enum关键字
enum color { RED, GREEN, BLUE }; int main() { printf("%d\n",RED); printf("%d\n",BLUE); printf("%d\n",GREEN); return 0; }