变量与常量

上一次我们介绍了C语言的基本数据类型http://t.csdn.cn/gR2oV,这一次我们接着介绍C语言的变量与常量。

1、认识C语言主函数

  

 main()为主函数 大括号{}(学名叫做代码块)为作用域(即函数起作用的范围) int 为函数的返回类型  return 0代表默认返回一个值0   这是C语言最基本的函数形式,大家目前记住即可。

2、变量

变量从数学上来讲就是一个可变的符号x,用来表示不同的值,而C语言由于存在不同的数据类型,这个x可以表示的就不仅仅是单纯的数值,还可以表示字符 (char类型等。当然也可以用来当作表达式,表达变量与其他变量之间的关系(即函数关系)

2.1定义变量的方法

在创建变量之前,我们先要想好变量的类型   变量的名字

例如:

 这里我们创建了一个int类型的变量a  和   char类型的变量b                                                                创建完后,我们应该对变量进行初始化。如图所示,我们将变量a初始化为0,将变量b初始化为0(当然这里用单引号引用的0是字符0,与数值0不同)

当然,在工程较复杂时,我们可能并不能直接确定变量的初始化内容,我们可以统一将变量初始化为数值0,在之后使用的时候再给它赋值。

2、2变量的命名

不同类型变量的名字可以相同也可以不同,我们创建了int a后,也可以创建一个相同变量名的  char a。在一个作用域  即{}内,同一类型的变量  它们的名字不能相同,即我们不能创建2个int a

2、3变量的分类

从类型上分类,与C语言的7种基本数据类型相同。

从作用域{}(即变量可以起作用/可以使用的范围)上来说,分为局部变量

定义在主函数{}外部的叫做全局变量,定义在{}内部的叫做局部变量。这里我们可能会产生疑问,表示相同类型变量名不能相同吗,为什么会有两个int a呢?

这是因为在类型上相同,但作用域不同,C语言允许这种类型变量的创建

2、4变量的作用域和生命周期 

作用域:通常来说,一段程序代码中所用到的名字并不总是有效的/可用的 限定这个名字可用性的代码范围就是这个名字的作用域。(官方解释)

1、局部变量作用域是变量所在局部范围(可理解为所在{}内)

2、全局变量的作用域是整个工程

生命周期:变量从创建到销毁的一个时间段    此处我们可以理解为 变量创建从操作系统获取一块空间作为这个变量的大小(如int4个字节),在生命周期结束后会将这一块空间返还给操作系统

1、局部变量的生命周期:进入作用域即开始,出作用域即结束。

2、全局变量的生命周期:即整个程序的生命周期。

3、常量(通常分为4种,暂时了解一下即可,与后面知识关联大)

3、1字面常量

一个数值  一个字符   一个字符串  都可以被称为字面常量(常量的值固定,不可修改,这种属性被称为常量的常属性)

 3、2const修饰的常变量

被const修饰后的变量num2具有了常属性,此时它不能被修改。然而,常变量的本质依然是一个变量,下面我们给出证明。(涉及到一点点数组的知识)

 

VS编译器不支持变长数组,即arr[]中不能放入变量只能放入常量(某个数),此时编译器显示表达式只能含有常量值,从而证明了被const修饰了的常变量本质上依然是变量。 (先记一下,学了数组之后再来重新理解^.^)

3、3#define定义的标识符常量

例如人的颜值M满分为100,可以定义这个常量M为值100,这个100以后可以用M代替,在数组中也可以使用(因此它不是变量) 。

然而M作为常量也是可以修改的,但这里的修改其实相当于重新定义,即将原来的#define M 100改成#define M 200。

它的意义在于,当我们要大量使用同一个值(如100)时,可以用M来代替,当我们想要修改这些值时,可以直接将M的值重定义为200,此时你使用的所有M当中的100都会变为200,从而大大提高效率。(在之后的猜数字、三子棋、扫雷小游戏定义不同难度,需要修改例如数字范围、雷数时会得到有效应用)

3、4枚举常量

枚举  即一 一列举,某个东西的种类较少,可以被列举出来(例如血型 性别 三原色等)

以颜色为例:

enum为枚举的关键字,下面的红蓝绿是三原色的枚举 

常量的知识可能有些难理解,有些吃力,但是学习如同爬坡,不感到吃力永远不会前进,也就永远不会进步。希望大家都能坚持下去^.^ 

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值