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

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

       对于初学C语言的人来,肯定会首先接触到变量与常量这两个概念,本篇文章将会对这两个知识进行讲解。

变量

一.变量的命名

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

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

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

 

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

如有错误,欢迎指出。

 

目录
相关文章
|
11天前
|
存储 编译器 C语言
【C语言】C语言的变量和声明系统性讲解
在C语言中,声明和定义是两个关键概念,分别用于告知编译器变量或函数的存在(声明)和实际创建及分配内存(定义)。声明可以多次出现,而定义只能有一次。声明通常位于头文件中,定义则在源文件中。通过合理组织头文件和源文件,可以提高代码的模块化和可维护性。示例包括全局变量、局部变量、函数、结构体、联合体、数组、字符串、枚举和指针的声明与定义。
40 12
|
20天前
|
存储 算法 C语言
【C语言】字符常量详解
字符常量是C语言中处理字符数据的重要工具。通过单引号括起一个字符,我们可以方便地使用字符常量进行字符判断、字符运算和字符串处理等操作。理解字符常量的表示方法、使用场景和ASCII码对应关系,对于编写高效的C语言程序至关重要。
79 11
|
20天前
|
安全 程序员 C语言
【C语言】指针的爱恨纠葛:常量指针vs指向常量的指针
在C语言中,“常量指针”和“指向常量的指针”是两个重要的指针概念。它们在控制指针的行为和数据的可修改性方面发挥着关键作用。理解这两个概念有助于编写更安全、有效的代码。本文将深入探讨这两个概念,包括定义、语法、实际应用、复杂示例、最佳实践以及常见问题。
40 7
|
20天前
|
C语言
【C语言】全局搜索变量却找不到定义?原来是因为宏!
使用条件编译和 `extern` 来管理全局变量的定义和声明是一种有效的技术,但应谨慎使用。在可能的情况下,应该优先考虑使用局部变量、函数参数和返回值、静态变量或者更高级的封装技术(如结构体和类)来减少全局变量的使用。
31 5
|
20天前
|
C语言
【C语言】<常量> 之群英荟萃
在C语言中,常量(Constants)是指在程序运行过程中其值不能被修改的固定值。常量包括数值常量(整型和浮点型)、字符常量、字符串常量、使用const关键字定义的常量变量以及枚举常量。
23 4
|
20天前
|
编译器 C语言
【C语言】常量的 “前缀和后缀” 大通关!
在C语言中,常量的前缀和后缀用于明确指定常量的类型和进制系统。前缀主要用于区分不同进制的数字常量,而后缀则用于区分不同类型的整数和浮点数。正确使用前缀和后缀,可以提高代码的可读性和可维护性,确保编译器正确地理解和处理常量。
32 1
|
2月前
|
存储 C语言
【c语言】数据类型和变量
本文介绍了C语言中的数据类型和变量。数据类型分为内置类型和自定义类型,内置类型包括字符型、整型、浮点型等,每种类型有不同的内存大小和取值范围。变量分为全局变量和局部变量,它们在内存中的存储位置也有所不同,分别位于静态区和栈区。通过示例代码和图解,详细阐述了这些概念及其应用。
53 1
|
2月前
|
存储 C语言
C语言指针与指针变量的区别指针
指针是C语言中的重要概念,用于存储内存地址。指针变量是一种特殊的变量,用于存放其他变量的内存地址,通过指针可以间接访问和修改该变量的值。指针与指针变量的主要区别在于:指针是一个泛指的概念,而指针变量是具体的实现形式。
|
2月前
|
存储 编译器 C语言
c语言回顾-联合和枚举
c语言回顾-联合和枚举
34 4
|
2月前
|
存储 C语言 C++
深入C语言,发现多样的数据之枚举和联合体
深入C语言,发现多样的数据之枚举和联合体
深入C语言,发现多样的数据之枚举和联合体