C语言中的变量和常量

变量和常量
变量的声明:用于向程序表明变量的类型和名字。
一种是需要建立存储空间的。例如:int a 在声明的时候就已经建立了存储空间。
一种是不需要建立存储空间的,通过使用extern关键字声明变量名而不定义它。 例如:extern int a 其中变量 a 可以在别的文件中定义的。

变量的定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储。变量定义指定一个数据类型,并包含了该类型的一个或多个变量的列表。例如:int i = 10;

区分声明和定义:声明是指告诉编译器有这么一个变量。定义是指明确变量的类型以及值。

根据变量的生命周期不同,变量可分为局部变量和全局变量。
局部变量:在某个函数或块的内部声明的变量称为局部变量。它们只能被该函数或该代码块内部的语句使用。局部变量在函数外部是不可知的。对于局部变量来说,系统不会对其进行初始化操作,所以在定义局部变量时,必须要求手动初始化。
全局变量:全局变量是定义在函数外部,通常是在程序的顶部。全局变量在整个程序生命周期内都是有效的,在任意的函数内部能访问全局变量。对于全局变量来说,系统默认会对其进行初始化。例如:int类型的数据初始化的默认值为0,char类型的初始化默认值为’\0’。

同时变量又会区分为左值和右值:
左值(lvalue):指向内存位置的表达式被称为左值(lvalue)表达式。左值可以出现在赋值号的左边或右边。
右值(rvalue):术语右值(rvalue)指的是存储在内存中某些地址的数值。右值是不能对其进行赋值的表达式,也就是说,右值可以出现在赋值号的右边,但不能出现在赋值号的左边。
例如下面这个例子:
int i = 10; //在这里i作为左值,10作为右值
int d = i; //在这里i作为右值,d作为左值
可以看出来第一条的i变量作为左值,到了第二条可以当右值用,但是如果是 10 = i;的话,编译器就会发生错误。

常量
常量有整数常量,浮点常量,字符常量,字符串常量。常量是固定值,在程序执行期间不会改变。这些固定的值,又叫做字面量。
常量的定义:
①使用#define预处理指令。例如:#define TRUE 1 //定义一个常量TRUE,它代表的值为整型1
②使用const关键字 例: const int TRUE = 1; //定义一个常量TRUE,它代表的值为整型1

二者的区别:
使用预处理指令,在预处理阶段,将常量全部替换为代表的值。#define宏没有类型。
使用const关键字,存储在内存中,在程序运行阶段进行取值。const常量有具体的类型。
建议:常量一般全部定义为大写字母。这是一种约定俗称的习惯。在宏定义时一定要给值加上括号,不然会导致意想不到的事情发生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值