C语言-常量与变量

1.变量的定义方法

2.变量的分类

3.变量的作用域与生命周期

4.常量的分类

1.变量的定义

变量的类型+变量名+赋值

int a=10;
float b=20.5;
char c='h';

如上图分别定义了一个整形变量a,值为10。浮点型b,值为20.5。字符型c,值为h。

注意:C语言的语法规定,变量要定义在代码块的最前面。

2.变量的分类

变量分为局部变量与全局变量。

局部变量:定义在代码块以内

全局变量:定义在代码块以外

局部变量是在局部范围内定义的,不能在范围外使用。

当局部变量与全局变量的名字相同时,局部变量优先,如下图

int a=100;             //定义的全局变量a
int main()
{
    int a=10;          //定义的局部变量a
    printf("%d",a);    //输出a时,理论上全局a在这里也能使用,但是有局部变量时,局部变量优先,所以输出结果为10
    return 0;
}

注意:一般不建议全局变量与局部变量名字相同

3.变量的作用域与生命周期

局部变量的作用域是该局部变量所在的代码块。

全局变量的作用域是整个工程,使用不同源文件的全局变量时需要声明。

当我在同一个工程中的一个源文件中定义了全局变量a时,我在其他的源文件中也能够使用它,只需用extern对该变量进行声明,如下图。

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

局部变量的生命周期是进入作用域开始,离开作用域结束。

全局变量的生命周期是整个程序的生命周期。

4.常量的分类

  (1) 字面常量

  (2) const修饰的常变量

  (3) #define定义的标识符常量

  (4) 枚举常量

(1)字面常量:直接的值,例如10,20等。

(2)const修饰的常变量

int main()
{
    const int n=10;
    int arr[n]={0};
    return 0;
}

如上图,使用关键字const修饰n,使n具有了常属性--即n 的本质仍是变量,只是具有常量的属性。所以上述代码报错。

(3)#define定义的标识符常量

#define MAX 10
int main()
{
    int arr[MAX]={0};
    printf("%d\n",MAX);
    return 0;
}

  如上图,上述代码可以编译,说明用#define可以定义常量

define是一个关键字,如上图用#define定义的常量,会在预编译阶段将函数中所有的MAX换成10.

(4)枚举常量

枚举-------即一一列举

生活中有很多可以一一列举的值,如星期,三原色等

C语言提供了一个枚举类型,让我们能够创造出能够被一一列举的类型

enum color
{
    \\定义的枚举常量
    red,           //0
    blue,          //1
    green          //2
};
\\定义了color这种类型的可能的取值
int main()
{
    enum color a=red;//想用a表示color,即可以用这三个常量给a赋值
    printf("%d,%d,%d\n",red,blue,green);//输出结果为0 1 2.即默认枚举常量的值从0开始,逐次加1.
    return 0;
}
    
    

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

c铁柱同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值