C语言之全局变量和局部变量

全局变量和局部变量的简介(tips:很重要 牢记)

  全局变量:就是定义在函数外的变量

      全局变量可以在任意函数中使用

      生命周期:程序一启动就开辟空间,直到程序退出才回收

      全局变量不允许同名

  局部变量:就是定义在函数内的变量

      局部变量只能在它声明的位置开始到它所在的代码块结束

      生命周期:它所在的代码块结束就回收

      不同的作用域里,局部变量可以同名

tips:代码例子如下

#include <stdio.h>

int globeNum = 10;   //全局变量

void test1(){

printf("%d\n",globeNum);

globeNum++;

}

void test2(){

globeNum++;

printf("%d\n",globeNum);

}

int main(int argc, const char * argv[]) {

//int globeNum = 10;//局部变量,暂时遮盖住了全局变量

globeNum++;

test1();//11

test2();//13

test1();//13

test1();//14

test2();//16

return 0;

}

时间: 2024-07-30 13:38:34

C语言之全局变量和局部变量的相关文章

c语言:全局变量与局部变量的区别

静态的全局变量: 程序: #include<stdio.h> #include<stdlib.h> void fun()//fun为定义的一个函数 { int i = 0; static int num = 0; for (i = 0; i < 10;i++) { num = 0;//一旦进入for循环,全局变量就赋值为0 num++; printf("%d ",num); } } int main() { fun(); system("paus

c语言,全局变量,局部变量,外部函数,内部函数,stasic和extern的复习总结

@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); 局部变量 定义:在代码块内部定义的变量 作用域:从定义变量的那一行开始,一直到代码块结束 生命周期:从定义变量的那一行开始分配存储空间,代码块结束后,就会被回收 没有默认的初始值 全局变量 定义:在函数外面定义的变量 作用域:从定义变量的那一行开始,一直到文件结尾(能

C语言中全局变量、局部变量、静态全局变量、静态局部变量的区别 (转)

1.C++变量根据定义的位置的不同的生命周期,具有不同的作用域,作用域可分为6种: 全局作用域,局部作用域,语句作用域,类作用域,命名空间作用域和文件作用域. 从作用域看: 1>全局变量具有全局作用域.全局变量只需在一个源文件中定义,就可以作用于所有的源文件.当然,其他不包含全局变量定义的源文件需要用extern 关键字再次声明这个全局变量. 2>静态局部变量具有局部作用域,它只被初始化一次,自从第一次被初始化直到程序运行结束都一直存在,它和全局变量的区别在于全局变量对所有的函数都是可见的,而

c语言全局变量和局部变量问题汇总

1.局部变量是否能和全局变量重名? 答:能,局部会屏蔽全局.要用全局变量,须要使用"::" 局部变量能够与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会用到全局变量.对于有些编译器而言,在同一个函数内能够定义多个同名的局部变量,比方在两个循环体内都定义一个同名的局部变量,而那个局部变量的作用域就在那个循环体内. 2.怎样引用一个已经定义过的全局变量? 答:extern 能够用引用头文件的方式,也能够用externkeyword,假设用引用头文件方式来引用某个在头文件

c语言全局变量与局部变量(当变量重名时)的使用情况

在c语言中,变量有全局变量和局部变量之分,这一点和很多高级语言类似,如c#,java等.不过与c#,java中的局部变量如在全局变量作用域内则不允许与全局变量名相同,而c语言是允许这样做的.这样的做法极不提倡,但是c语言既然允许这么做,就分析一下其变量名相同时在不同位置调用该变量名时所实际调用的是哪个变量值. 代码如下: #include <stdio.h> //全局变量 //作用域:从定义开始到文件结束 //默认初始值为0 int c = 1; int test() { int c = 2;

JS函数 -- 功能,语法,返回值,匿名函数,自调用匿名函数,全局变量与局部变量,arguments的使用

“JavaScript设计得最出色的就是它的函数的实现.” -- <JavaScript语言精粹> 函数包含一组语句,它们是JS的基础模块单元,用于指定对象的行为.一般来说,所谓编程,就是将一组需求分解成一组函数与数据结构的技能. 1.函数的功能 代码重复性使用 模块化编程 2.语法: 使用函数前要先定义才能使用 函数定义有三个部分:函数名,参数列表,函数体 格式: 1 function 函数名([参数1, 参数2, ...]){ 2 3 函数执行部分; 4 5 return 表达式; 6 7

【转】全局变量与局部变量在内存中的区别详细解析

转自:http://www.jb51.net/article/42012.htm 作者: 字体:[增加 减小] 类型:转载 时间:2013-10-11 我要评论 以下是对全局变量与局部变量在内存中的区别进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 一.预备知识-程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1.栈区(stack)- 由编译器自动分配释放,存放函数的参数值,局部变量的值等.其操作方式类似于数据结构中的栈. 2.堆区(heap) - 一般

Swift编程语言学习11—— 枚举全局变量、局部变量与类型属性

全局变量和局部变量 计算属性和属性监视器所描写叙述的模式也能够用于全局变量和局部变量,全局变量是在函数.方法.闭包或不论什么类型之外定义的变量,局部变量是在函数.方法或闭包内部定义的变量. 前面章节提到的全局或局部变量都属于存储型变量,跟存储属性类似,它提供特定类型的存储空间,并同意读取和写入. 另外,在全局或局部范围都能够定义计算型变量和为存储型变量定义监视器,计算型变量跟计算属性一样,返回一个计算的值而不是存储值,声明格式也全然一样. 注意: 全局的常量或变量都是延迟计算的,跟延迟存储属性相

Swift 的全局变量、局部变量与类型属性

全局变量和局部变量 计算属性和属性监视器所描述的模式也可以用于全局变量和局部变量,全局变量是在函数.方法.闭包或任何类型之外定义的变量,局部变量是在函数.方法或闭包内部定义的变量. 前面章节提到的全局或局部变量都属于存储型变量,跟存储属性类似,它提供特定类型的存储空间,并允许读取和写入. 另外,在全局或局部范围都可以定义计算型变量和为存储型变量定义监视器,计算型变量跟计算属性一样,返回一个计算的值而不是存储值,声明格式也完全一样. 注意: 全局的常量或变量都是延迟计算的,跟延迟存储属性相似,不同