变量
变量分为全局变量和局部变量。全局变量是定义在代码块({ })之外的变量,局部变量是定义在代码块内部的变量(放在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。
变量的作用域和生命周期
这个变量哪里可以用,哪里就是它的作用域
局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束
全局变量的生命周期:整个程序的生命周期
© 著作权归作者所有
发表评论