菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
129
0

初学C语言3

原创
05/13 14:22
阅读数 27125

变量

变量分为全局变量和局部变量。全局变量是定义在代码块({ })之外的变量,局部变量是定义在代码块内部的变量(放在main函数内部的变量是局部变量,但不是所有的局部变量都放在main函数内部)

举几个简单的小例子:

1 #include<stdio.h>
2 int num1 = 20;  //num1为全局变量
3 int main()
4 {
5 int num2 = 10;  //num2为局部变量(放在大括号内部的变量都是局部变量)
6 return 0;
7 }

1 #include<stdio.h>
2 int a = 20;
3 int main()
4 {
5 int a = 10;
6 printf("%d\n",a);
7 return 0;
8 }

 

 

 

1 #include<stdio.h>
2 int a = 20;
3 int main()
4 {
5 printf("%d\n",a);
6 return 0;
7 }

 

 

 由例②得出的结论为:1.全局变量与局部变量的变量名相同时,优先输出局部变量

                                     2.局部变量与全局变量的名字建议不要相同,容易误会产生bug

1 #include<stdio.h>
2 int main()
3 {
4  {
5   int a = 10;
6  }
7  printf("%d\n",a);
8  return 0;
9 }

 

 

 运行后报错,局部变量只能在自己所在的代码块中运行,代码块外无法对其进行指令操作。

变量的使用

计算两个数的和

 1 #include<stdio.h>
 2 int main()
 3 {
 4 int num1 = 0;
 5 int num2 = 0;
 6 scanf("%d%d",&num1,&num2);
 7 int sum = 0;
 8 sum = num1 + num2;
 9 printf("sum= %d\n",sum);
10 return 0;
11 }

 

 

 代码运行后报错,报错内容为int sum = 0这一行,缺少“;”在类型的前面和sum未声明,由于实际上没有出现报错内容上的失误,所以错误无意义

报错原因:C语言语法规定,变量要定义在当前代码块的最前面,C++则是哪里需要定义时就可以定义,因为现在是写C语言代码,所以应将int sum = 0;放在前面,修改后的代码为:

 1   #include<stdio.h>
 2   int main()
 3   {
 4   int num1 = 0;
 5   int num2 = 0;
 6   int sum = 0 7   scanf("%d%d",&num1,&num2);
 8   sum = num1 + num2;
 9   printf("sum= %d\n",sum);
10   return 0;
11   }

 

 这时候要输入两个值分别赋给num1和num2,我就随便输入1和2吧,记得两个数中间要用空格隔开。

 

 注:这里的int num1=0;int num2=0;int sum=0;都是在给变量初始化,那么谈一下对变量初始化的理解:

定义变量初始化不是必须的,也可以不初始化,或者初始化为别的数字,主要看需求。

初始化的目的是为了防止后面没有赋值就进行了使用,变量刚定义的时候它指向的值是不确定的,所以如果引用了一个没有赋值的变量,由于其值的不确定性,会引起程序的异常。

如果后面会引用这个变量做加减操作,可以初始化为0,如果后面做乘除操作,建议初始化为1。

变量的作用域和生命周期

这个变量哪里可以用,哪里就是它的作用域

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

全局变量的生命周期:整个程序的生命周期

 

发表评论

0/200
129 点赞
0 评论
收藏