我们生活的世界变化万千,但有些东西是不变的(比如:圆周率、身份证号、性别等),而有些东西是随着时间或者某种外因而变化的(比如:身高、体重、年龄等)。
C语言中把变化的值,用变量概念来表示
#include<stdio.h>
int main()
{
int age=18;
float height=184.5f;
char ch='H';
return 0;
}
1).只能由字母(包括大写和小写)、数字和下划线( _ )组成。
2).不能以数字开头。
3).长度不能超过63个字符。
4).变量名中区分大小写的。
5).变量名不能使用关键字。
变量分为局部变量和全局变量
局部变量,也称内部变量,是指在一个函数内部或复合语句内部定义的变量。
也可以浅显的理解为{ }内定义的变量只能在{ }内的范围使用。
代码如下(示例):
#include<stdio.h>
int mian()
{
int a = 1;
if (a = 1)
{
int j = 1;
}
printf("%d", j);
return 0;
}
此时就会报错如下:
如果将printf函数放入if语句{ }中就可以打印
代码如下(示例):
#include<stdio.h>
int mian()
{
int a = 1;
if (a = 1)
{
int j = 1;
printf("%d", j);
}
return 0;
}
全局变量也称为外部变量,它是在函数外部定义的变量。
它不属于哪一个函数,它属于一个源程序文件。
代码如下(示例):
#include<stdio.h>
int j = 1;//全局变量
int main()
{
int a = 1;
if (a = 1)
{
printf("%d\n", j);
}
printf("%d\n", j);
return 0;
}
编译结果如下:
我们可以发现不论是哪里的printf函数都将j的值打印出来了,这就是全局变量作用
当局部变量和全局变量同名的时候,局部变量优先使用。
代码如下(示例):
#include<stdio.h>
int j = 10;//全局变量
int main()
{
int j = 20;//局部变量
printf("%d\n", j);
return 0;
}
1. 局部变量的作用域是变量所在的局部范围。
2. 全局变量的作用域是整个工程。
1.变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
2.局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
3. 全局变量的生命周期是:整个程序的生命周期。
C语言中把不变的值,用常量概念来表示
C语言中的常量分为四种:字面常量、const 修饰的常变量、#define 定义的标识符常量、枚举常量。
代码如下(示例):
#include<stdio.h>
int main()
{
18;
184.5;
80;
returm 0;
}
代码如下(示例):
#include<stdio.h>
int main()
{
const int a=10;
int a=20;
printf("%d",a);
return 0;
}
虽然被const修饰后为常变量,但本质上是变量
代码如下(示例):
#include<stdio.h>
int main()
{
const int a = 10;
int arr[a] = { 0 };
return 0;
}
编译结果如下:
就会出现报错表达式中必须含有常量值,因为在静态内存分配中要先分配内存,此时就要求表达式必须是一个常量,也间接证明了,const修饰后的常变量,本质上是一个变量。
代码如下(示例):
#include<stdio.h>
#define MAX 1000;
int main()
{
int a = MAX;
printf("MAX = %d\n",a);
return 0;
}
编译结果如下:
为了将标识符与变量名区别开来,习惯上标识符全部用大写字母表示。程序中用双引号括起来的宏在预处理的时候是不会被宏替换的。因为在 C 语言中,用双引号括起来表示的是字符串,从上图编译结果就可以看出来。#define 的作用域为自 #define 那一行起到源程序结束,如果要终止其作用域可以使用 #undef 命令。
代码如下(示例):
#include <stdio.h>
enum Sex
{
MALE,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
//注:枚举常量的默认是从0开始,依次向下递增1的
return 0;
}
编译结果如下:
当然你也可以直接在定义的时候直接定义初始大小,也是可以的
#include <stdio.h>
enum Sex
{
MALE=2,
FEMALE,
SECRET
};
//括号中的MALE,FEMALE,SECRET是枚举常量
int main()
{
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
//注:枚举常量的默认是从0开始,依次向下递增1的
return 0;
}
以上就是今天我给大家所介绍的内容,大家一定要多记住两者区别和重点,希望能够对初学者学习变量和常量时有所帮助。