今天博主来继续更新。
我们知道在任何一门编程语言中都会涉及到常量和定义变量的问题。顾名思义,常量,也就是不变的值,变化的值用变量来表示。
变量:局部变量和全局变量。
我们现在看一段代码:
# include
int b=20;
int main()
{
short a = 20;
return 0;
}
在C语言中,局部变量是在函数内部或代码块(用{}括起来的区域)中定义的变量。在函数内部定义的变量,其作用域仅限于该函数。
全局变量的作用域是整个源程序文件。从定义量的位置开始到源文件结束,在各个函数中都可以访问全局变量。
由此可以看书,上述代码中a为局部变量,b为全局变量。
当全局变量和局部变量名字相同的情况下,局部变量优先。(但是博主这里不太建议局部和全局变量的名字一样哦!)
# include
int a=20;
int main()
{
short a = 10;
printf(”a=%d\n”,a);
return 0;
}
局部变量的作用域是变量所在的局部范围,其生命周期是进入作用域生命周期的开始,出作用域生命周期结束。全局变量的作用域是整个工程,其生命周期是整个程序。
另外,我们已经知道,全局变量的作用域是整个源程序文件。从定义变量的位置开始到源文件结束,在各个函数中都可以访问全局变量。若要在定义之前使用,需用extern关键字生命。extern 声明来自外部的符号。
常量:
在C语言中,常量是指在程序运行过程中其值不能被改变的量,主要有以下几种类型:
字面常量:
1. 整型常量:如10、-5、0等,默认为int整型,可通过添加后缀u或U表示无符号整型,添加l或者L表示长整型。
2. 实型常量:即实数,有十进制小数形式和指数形式。如3.14、0.5是十进制小数形式,2.5e2是指数形式.
3. 字符常量:用单引号括起来的单个字符,如'a'、'B'、'5'等。还有转义字符,如'\n'换行等。
4. 字符串常量:用双引号括起来的字符序列,如"Hello'、"world"。系统会自动在字符串末尾添加'\0'作为结束标志。
符号常量:
1. 用#define预处理指令定义,格式为#define 标识符 常量表达式。例如,#define PI 3.14159,之后在程序中就可以用PI代表3.14159。
# define _CRT_SECURE_NO_WARNINGS
# include
#define max 100
int main()
{
printf("%d\n",max);
int a = max;
printf("%d\n", a);
return 0;
}
2. 用const关键字定义,如 const int MAX_SIZE=100;,定义了一个名为MAX_SIZE的整型常量,值为100,不能再修改。
# define _CRT_SECURE_NO_WARNINGS
# include
int main()
{
const int a = 10;
a = 20;
printf("%d", a);
return 0;
}
以上结果报错。在C语言中const修饰的a本质是变量,但是不能被修改,有常量的属性。
枚举常量:
用enum关键字定义枚举类型来创建枚举常量。如 enum weekday{MON,TUE,WED,THU,FRI,SAT,SUN};,这里MON、TUE等就是枚举常量,默认值分别从0开始以此递增。也可以自定义其值,如enum weekday {MON=1,TUE,WED,THU,FRI,SAT,SUN};,此时MON的值为1,TUE为2等。
enum Color
{
//枚举常量
RED,
GREEN,
BLUE
};
enum sex
{
male,
female,
secret
};
int main()
{
//三原色 red green blue
int num = 10;
enum Color c=RED;
return 0;
}