前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言基础知识:变量 (局部和全局)与常量(枚举常量.....)

C语言基础知识:变量 (局部和全局)与常量(枚举常量.....)

作者头像
aosei
发布2024-01-23 13:10:35
4220
发布2024-01-23 13:10:35
举报
文章被收录于专栏:csdn-nagiY

变量

一.变量的命名

1.变量的名称可以由字母,数字,下划线组成(不包括操作符);某些学校考试时可能会出现这样的代码:

这样是错误的变量定义方式;

2.不可以以数字开头;

3.不可以是C语言中规定的关键字。

关键字详细解析:http://t.csdn.cn/yWCnT

但在某些编译器中变量是可以被命名成关键字的。

二.变量的作用域和生命周期

1.作用域:可以简单理解为一对大括号{}里的部分,也叫代码块。

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

三.变量的分类

1.局部变量:只在变量所定义的作用域内有效,所有的局部变量是自动变量,即自动创建,自动消除,关键字为:auto,但这个在我们编写程序的时候通常省略;

局部变量的生命周期是变量所在的作用域;

2.全局变量:作用范围是整个工程。

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

全局变量若定义时未初始化,则编译器默认是0。

那出现下图这种情况是因为什么呢?

这是因为程序运行时是先从主函数进去,自上而下扫描,当执行到printf时,因为int a=10;在main函数的下方,编译器找不到,便会报错。要想解决这个问题,我们可以先在main函数上方声明再使用,如图:

我们平时在定义全局变量的时候,紧接着就初始化可以有效避免上述情况的发生。

在这里再介绍一个关键字:extern

它的作用是:引用外部符号

如下图所示:

常量

一.常量的分类

1.字面常量;

即下方100这种

2.const修饰的常变量;

我们都知道赋值语句左边必须是可修改的左值,一般地,如下图所示程序是没有问题的

但如果在int加一个const呢

很显然编译器会报错。这是因为const修饰后使变量a具有了常属性,但他本质上还是个变量,所以a叫const修饰的常变量。再来看看下面这张图

arr是一个数组,这里a必须要求是一个常量,虽然a有了常属性,但本质上仍是个变量,所以不能用在数组中。

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

需要注意的是3后不能加分号‘;’

4.枚举常量。

枚举关键字:enum

生活中,总有一些东西是能一一列举出来的,如性别,星期啊;

对于类似这类的,我们可以使用枚举常量,详情如下图所示:

本篇文章就到这儿啦,谢谢你的阅读。

如有错误,欢迎指出。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-01-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档