变量的定义有两个参数:变量名与变量的数据类型。
1、变量名即该变量的名称,也是计算机给这个变量分配的内存的名称,计算机在编译时可以根据变量名找到该内存单元的地址从而调用该内存中储存的数据。
2、数据类型的定义则可以确定计算机给该变量分配多大的内存空间。
#include <stdio.h>
int main()
{
int num1 = 10;
printf("%d\n",num1);
return 0;
}
在上述代码中,我们所定义的变量名为 num1 ,数据类型为 int 。
变量分为局部变量和全局变量
全局变量-定义在代码块 {...} 之外的变量
局部变量-定义在代码块 {...} 内部的变量
#include <stdio.h>
int num2 = 20;
int main()
{
int num1 = 10;
printf("%d\n",num1);
return 0;
}
在上述代码中,num2 为全局变量,num1 为局部变量
要注意:局部变量和全局变量的名字建议不要相同-容易误会,产生bug,当局部变量和全局变量的名字相同时,局部变量优先
以下代码是一个关于加法的c程序
#include <stdio.h>
int main()
{
int num1 = 0;
int num2 = 0;
int sum = 0;
scanf("%d%d",&num1 , &num2);
sum = num1 + num2;
printf("sum = %d\n",sum);
return 0;
}
这里我们用到的是一个输入函数scanf
scanf("%d%d",&num1 , &num2);
在这一句中,%d%d作为占位符。
要注意:这里我们不能直接在逗号后街 num1、num2 ,在这里要使用地址符 "&" ,分别写在num1 、num2前。
还有一点要注意:c语言语法规定,变量要定义在当前代码块的最前面,这不像c++中代码写到哪就定义到哪。如果将int sum = 0;这一句写在sum = num1 + num2;前,则会报错。
一、作用域
作用域(scope),程序设计概念,通常来说一段程序代码中所用到的名字并不是有效/可用的,而是限定这个名字的可用性的代码范围就是这个名字的作用域
1、局部变量的作用域是变量所在的局部范围
2、全局变量的作用域是整个工程
?? ?即使在不同的c程序中,全局变量依旧可以使用,但是需要“声明”,用extern函数表示声明
//假设创建了一个名为123.c的c程序
#include <stdio.h>
int num_1 =2024
int main()
{
printf("num_1 = %d",num_1);
return 0;
}
这里定义了一个num_1的全局变量,下面创建一个新的c程序使用该全局变量
//这里创建一个名为456.c的c程序
#include <stdio>
int main()
{
//声明标识符
extern int num_1;
printf("num_1 = %d",num_1)
return 0;
}
在上述代码中,我们用extern函数表示声明,格式为“extern 数据类型 变量名“。
这也说明了,全局变量的作用域是整个工程。
二、生命周期
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段。
1、局部变量的生命周期是:进入作用域生命周期开始,出作用域生命周期结束。
2、全局变量的生命周期是:整个程序的生命周期。