黑马程序员技术交流社区
标题:
c语言中 ,变量按作用域分哪几种?
[打印本页]
作者:
gamyc
时间:
2015-5-16 21:48
标题:
c语言中 ,变量按作用域分哪几种?
全局变量、外部变量、内部变量、局部变量,这些都是谁包含谁?都什么意思啊?还有,各自怎么定义,用extern? static?还是啥?
作者:
香草芭芙
时间:
2015-5-16 22:51
test00.c
#include "test00.h"
int b = 4;
void test(int * a, int * b)
{
*a = 10;
*b = 20;
}
复制代码
main.c
#include <stdio.h>
#include "test00.h"
#define TRUE 1
int a; //全局变量
extern int b; //外部变量 == 其他文件里的 全局 int b ;
static int c = 5; //静态全局变量 (关于静态全局变量网上有个有意思的比喻)
// 普通全局变量穿上static外衣后,它就变成了新娘,已心有所属,只能被定义它的源文件(新郎)中的变量或函数访问。
int main(int argc, const char * argv[])
{
if (TRUE)
{
int d = 0; //局部变量 == 内部变量
printf("d = %d , static int c = %d \n", d, c);
}
while (TRUE)
{
if (TRUE)
{
static int e = 0; //静态局部变量 : 内存中只有一份, 不会重复定义. 因此 e 是累加
printf("e = %d\t", e);
e++;
if (e == 10)
{
printf("\n");
break;
}
}
}
printf("a = %d, b = %d , c = %d \n", a, b, c);
test(&a,&b);
printf("a = %d, b = %d , c = %d \n", a, b, c);
return 0;
}
复制代码
作者:
梦初醉
时间:
2015-5-17 00:39
图形结合 我竟无言以对
作者:
wangguanyang
时间:
2015-5-17 08:01
*全局变量也称为外部变量,它是在函数外部定义的变量。
*局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该 函数后再使用这种变量是非法的。
*全局变量的说明符为extern。 但在一个函数之前定义的全局变量,在该函数内使用可不再加以说 明。
*对于局部变量的定义和说明,可以不加区分。而对于外部变量则不然,外部变量的定义和外 部变量的说明并不是一回事。外部变量定义必须在所有的函数之外,且只能定义一次。 其一般形式为: [extern] 类型说明符 变量名,变量名... 其中方括号内的extern可以省去不 写。
作者:
doushu
时间:
2015-5-17 09:16
全局变量和局部变量
作者:
碧空海
时间:
2015-5-17 11:53
没有什么包含不包含的,你看看C Primer Plus好好的学习一下吧。。。。。
作者:
卖女孩的小乌龟
时间:
2015-5-17 12:36
全局变量和局部变量
作者:
gamyc
时间:
2015-5-17 16:08
大神威武,小弟学习了
作者:
shao
时间:
2015-5-17 20:43
学习下。。。。。
作者:
lyricdon
时间:
2015-5-17 21:37
。。2楼真是亮!
作者:
kansiliyundi
时间:
2015-5-18 21:40
分为内部变量和外部变量。内部变量是在函数或代码块内部定义的变量。反之就是外部变量,也称为全局变量
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2