4个回答
展开全部
前面定义的,是全局变量,,也就是,后面的函数中都要效果,
而在main函数了定义的,只有main函数中有效,,之外无效,
如
int a=1;
void main(){
int b=0; //ab 都有效。
}
int fun(){
// a有效,而b无效
}
明白了吗
而在main函数了定义的,只有main函数中有效,,之外无效,
如
int a=1;
void main(){
int b=0; //ab 都有效。
}
int fun(){
// a有效,而b无效
}
明白了吗
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在任何函数之外定义的变量叫做全局变量,所有的函数均可以访问,并且只能够初始化一次,是存放在内存中叫做数据段的地方
在函数中定义的变量,叫做局部变量,存放在内存的栈中,在这个变量出现时分配存储空间,伴随着它所在的大括号的结束而取消存储空间的
在函数中定义的变量,叫做局部变量,存放在内存的栈中,在这个变量出现时分配存储空间,伴随着它所在的大括号的结束而取消存储空间的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
准确而又通俗点来讲,按变量是在函数体之内之外定义分两大种。
1、局部变量:在函数内定义的,属于所在的函数自己所有,与其他函数无关。局部变量随所在函数被调用而产生,随函数返回而消灭。
2、外部变量:也称全局变量。在函数外定义,也就是定义不落在任何函数体内的,本质上属于所有函数共用,从程序一开始运行就存在直到程序结束。
细一点分的话,局部变量还可以分出一种局部静态变量。
3、局部静态变量:定义时在类型名前加static关键字,特点是可以在函数下次被调用时恢复到上一次函数返回前的状态。实质上是它从未消灭,只是因为它只归函数自己使用,函数返回了便没有其他函数能看到它,相当于暂时隐藏消失了而已。不是静态的局部变量称为自动变量,因为自动产生自动消灭。
外部变量也有在定义时类型名前加static关键字的一种分类,可称为外部静态变量。
4、外部局部变量:但不同于局部静态变量是局部变量的恒久版,因为外部变量号称全局,其本身就已经是恒久存在的。外部静态变量实际上反倒变成了外部变量的限制版,仅限同一个文件内的函数使用,因此它更多被称为本地变量,与全局变量相对。
这里看出static关键字的使用前后含义不一,确实有些别扭。与本地变量相类比,函数也有本地版的函数,仅限于被同一个文件内的函数调用,定义时也是在类型名前加static关键字。
这里不得不提到 声明和定义的区别,非常重要。C语言要求所有的名字在使用前都至少要有声明,以知道名字的类型等信息,所有在声明或定义之前就使用的变量默认为其类型是int型,函数则其返回值为int型。任何名称的定义只能有一处,声明则不限,但声明不得与定义相抵触。
通常在多文件的项目中,多将全局变量和外部函数的声明收集在一个头文件中,因为这些名字都是共用的。
因此,C语言的要求是先声明后使用,通过包含头文件、在代码前头位置声明或者在其他函数体内声明,可以延伸作用域。
声明的语法形式与定义很相似,有一些很零散的规则可以区分声明和定义,外部变量的声明和定义可以在类型名前显式加extern关键字。但只有在定义时才可以用“=”后跟值或者表达式的形式予以初始化。
定义时如果不初始化,除将被自动变量外,其他变量默认初始化为全0或者NULL。
自动变量没有默认初始化,因此如果自动变量定义时不初始化,起始值就是不确定的。
1、局部变量:在函数内定义的,属于所在的函数自己所有,与其他函数无关。局部变量随所在函数被调用而产生,随函数返回而消灭。
2、外部变量:也称全局变量。在函数外定义,也就是定义不落在任何函数体内的,本质上属于所有函数共用,从程序一开始运行就存在直到程序结束。
细一点分的话,局部变量还可以分出一种局部静态变量。
3、局部静态变量:定义时在类型名前加static关键字,特点是可以在函数下次被调用时恢复到上一次函数返回前的状态。实质上是它从未消灭,只是因为它只归函数自己使用,函数返回了便没有其他函数能看到它,相当于暂时隐藏消失了而已。不是静态的局部变量称为自动变量,因为自动产生自动消灭。
外部变量也有在定义时类型名前加static关键字的一种分类,可称为外部静态变量。
4、外部局部变量:但不同于局部静态变量是局部变量的恒久版,因为外部变量号称全局,其本身就已经是恒久存在的。外部静态变量实际上反倒变成了外部变量的限制版,仅限同一个文件内的函数使用,因此它更多被称为本地变量,与全局变量相对。
这里看出static关键字的使用前后含义不一,确实有些别扭。与本地变量相类比,函数也有本地版的函数,仅限于被同一个文件内的函数调用,定义时也是在类型名前加static关键字。
这里不得不提到 声明和定义的区别,非常重要。C语言要求所有的名字在使用前都至少要有声明,以知道名字的类型等信息,所有在声明或定义之前就使用的变量默认为其类型是int型,函数则其返回值为int型。任何名称的定义只能有一处,声明则不限,但声明不得与定义相抵触。
通常在多文件的项目中,多将全局变量和外部函数的声明收集在一个头文件中,因为这些名字都是共用的。
因此,C语言的要求是先声明后使用,通过包含头文件、在代码前头位置声明或者在其他函数体内声明,可以延伸作用域。
声明的语法形式与定义很相似,有一些很零散的规则可以区分声明和定义,外部变量的声明和定义可以在类型名前显式加extern关键字。但只有在定义时才可以用“=”后跟值或者表达式的形式予以初始化。
定义时如果不初始化,除将被自动变量外,其他变量默认初始化为全0或者NULL。
自动变量没有默认初始化,因此如果自动变量定义时不初始化,起始值就是不确定的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询