关于局部变量,形式参数和全局变量在代码块中的作用域
来源:互联网 发布:数据库集群硬件 编辑:程序博客网 时间:2024/05/16 07:23
局部变量:在函数内部(代码块内部)声明的变量,也称为“自动变量”,进入代码块创建,退出代码块销毁
#include<stdio.h>int fun(){int a = 19;{int a = 20;{int a = 21;printf("%d\n", a); //21,局部优先,但只在当前代码块起作用,出代码块就销毁。}printf("%d\n", a); //20,局部优先,但只在当前代码块起作用,出代码块就销毁。return a;}}int main(){int word = 0;int a=0;word = fun(a);system("pause");return 0;}
#include<stdio.h>#include<stdlib.h>int main(){printf("hello\n");int num = 20; //(不同平台下可能会)出现error,C语言中变量声明必须放在在当前代码块的最前面,不是所有代码块的最前面printf("%d", num);system("pause");return 0;}
在局部变量之前加上static(静态变量)放在不同的位置:
#include<stdio.h>void fun(){int i = 0;static int num = 0;for (i = 0; i < 10; i++){num++;printf("%d\n", num); //1,2,3,4,5,6,7,8,9,10}}int main(){fun();system("pause");return 0;}
#include<stdio.h>void fun(){int i = 0;for (i = 0; i < 10; i++){static int num = 0; //初始化num,只执行一次,num是一个静态变量,创建后不再销毁,直到程序当前代码块结束num++;printf("%d\n", num); //1,2,3,4,5,6,7,8,9,10}}int main(){fun();system("pause");return 0;}
<pre class="objc" name="code">#include<stdio.h>void fun(){int i = 0;for (i = 0; i < 10; i++){int num = 0; num是局部变量,每次进入循环时创建,出代码块时销毁num++;printf("%d\n", num); //1,1,1,1,1,1,1,1,1,1}}int main(){fun();system("pause");return 0;}
#include<stdio.h>void fun(){int i = 0;static int num = 0;for (i = 0; i < 10; i++){num = 0; //赋值,不管num的值是多少,进入循环后,每次都会被赋值为0.num++;printf("%d\n", num); 1,1,1,1,1,1,1,1,1,1}}int main(){fun();system("pause");return 0;}
#include<stdio.h>int main(){void fun(void);int i = 0;for (i = 0; i < 10; i++){fun(); //调用fun函数,j是局部变量,调用一次,销毁一次,每次调用,重新创建}printf("\n");system("pause");return 0;}void fun(void){int j = 0;j++;printf("%d ", j); //1,1,1,1,1,1,1,1,1,1}
#include<stdio.h>int main(){void fun(void);int i = 0;for (i = 0; i < 10; i++){fun(); //j是一个静态变量,创建后,直到程序当前代码块结束时销毁}printf("\n");system("pause");return 0;}void fun(void){static int j = 0;j++;printf("%d ", j); //1,2,3,4,5,6,7,8,9,10}
#include<stdio.h>int main(){void fun(void);int i = 0;for (i = 0; i < 10; i++){fun();}printf("\n");system("pause");return 0;}static int j = 0;void fun(void){j = 0; //赋值,每次调用都会给j赋值为1j++;printf("%d ", j); //1,1,1,1,1,1,1,1,1,1
}
形式参数:把定义声明在函数参数里面,也相当于局部变量,只对当前代码块起作用。使用完成后自动销毁
#include<stdio.h>int is_in(char *s, char c) //*s和c都属于形式参数{while (*s)if (*s == c){printf("exist");return 1;}else{s++;}return 0;}int main(){char *p = "abcdef";char c = 'd';is_in(p, c);system("pause");return 0;}
全局变量:所有在代码块之外({}大括号之外)定义的变量,当全局变量与局部变量冲突时,局部优先。
#include<stdio.h>int a = 20;int b; //声明int fun1(){printf("b=%d", b); //20return 0;}int b = 30; //定义,b在所有代码块的外部,是一个全局变量,对程序所有代码块起作用,所以fun1可以调用,但需要提前声明int fun2(){return 1;}int main(){fun1();system("pause");return 0;}
0 0
- 关于局部变量,形式参数和全局变量在代码块中的作用域
- 全局变量,局部变量和形式参数
- 关于局部变量、全局变量、形式变量和实参变量
- 代码块中的局部变量与作用域
- 局部变量和全局变量的作用域
- 全局变量和局部变量作用域
- 作用域、局部变量、全局变量
- 9、变量的作用域--(全局变量和局部变量)
- 关于全局变量和局部变量
- javaScript中的全局变量和局部变量;及javaScript函数作用域;
- 关于C语言中的局部变量和全局变量的分析
- 关于在多线程中,局部变量和全局变量的使用。
- 在javascript中关于局部变量和全局变量简析
- C++的局部变量和全局变量的作用域
- C/C++全局变量和局部变量作用域问题
- 局部变量和全局变量的作用域的首次理解
- js全局变量和局部变量的作用域分析
- Block用法---局部变量和全局变量在Block中的使用
- 项目管理四个核心要素
- C语言去掉字符串中的数字
- 1049. Counting Ones
- java泛型总结2-2 面试题总结
- 在eclipse中,如何添加现有java类文件或包文件到工程中?
- 关于局部变量,形式参数和全局变量在代码块中的作用域
- 手把手入门神经网络系列(1)_从初等数学的角度初探神经网络
- 关于apache2.4 的虚拟目录配置问题
- [DIY与计算机]推荐配件的一些依据
- POJ3267 DP
- JAVA中的包(Package)
- 项目经理需要具备四种基本素质及八大管理技能
- JSP
- 汇编基础一