精华内容
下载资源
问答
  • 局部变量与全局变量

    2021-01-08 11:31:01
    局部变量与全局变量的关系是一个非常重要且细致的问题,在这方面,稍不注意就非常容易出问题。现稍作总结。 变量的作用域 变量的作用域是指变量的使用范围。根据变量的作用域,可以将变量分为局部变量与全局变量。 ...

    局部变量与全局变量的关系是一个非常重要且细致的问题,在这方面,稍不注意就非常容易出问题。现稍作总结。

    变量的作用域

    变量的作用域是指变量的使用范围。根据变量的作用域,可以将变量分为局部变量与全局变量。

    局部变量

    在一个函数内复合语句内定义的变量称为局部变量。此外,函数的形参也属于局部变量。
    局部变量只允许在其定义的函数或复合语句中使用,离开所在的函数或复合语句后该局部变量将不能使用。

    • main()函数中定义的变量不能在其余的函数中使用。
    • 复合语句中定义的变量只能在该复合语句中使用
    • for()循环中定义的变量只能在该循环语句中使用

    重要说明
    局部变量是在执行该函数或复合语句时自动建立,当该函数或复合语句执行完毕后将自动释放。所以在不同的函数或复合语句中定义同名的局部变量,也不会相互干扰。

    全局变量

    全局变量声明与所有函数之外,可以被所有函数使用。

    #include <iostream>
    using namespace std;
    
    int a=3,b=5;//定义了全局变量a,b
    
    int fun(int a,int b)//函数形参也是a,b
    {
        return a>b?a:b;
    }
    
    int main()
    {
        int a=8;//在main()中定义了局部变量a
        cout<<fun(a,b);//输出a,b中的最大值
        return 0;
    }
    //运行结果
    8
    

    在上述代码中定义了全局变量a、b,又在main()中定义了局部变量a,这是被允许的。并且,在main()中调用了fun()函数,且实参为main()中定义的a与全局变量b,注意,fun()是在main()中调用的,其实参为main()中的a,并非是全局变量a。所以实际上传递的参数的值为fun(8,5),而不是fun(3,5)。
    系统规定,当局部变量与全局变量同名时,在该函数或者复合语句内,局部变量优先于全局变量,也即“局部变量优先”原则。
    在这种情况下,即在函数或者复合语句内有和全局变量同名的变量时,当想使用全局变量,需要在变量前加作用域运算符“::”。

    #include <iostream>
    using namespace std;
    
    int a=3;//定义了全局变量a
    
    int main()
    {
        int a=8;//在main()中定义了局部变量a
        cout<<::a;//输出全局变量a
        return 0;
    }
    //运行结果
    3
    
    展开全文
  • # ### 局部变量 全局变量 ''' 局部变量:在函数内部声明的变量就是局部变量. 全局变量:在函数外部声明的变量或用global关键字在函数内部声明的变量 作用域:作用的范围 局部变量:作用范围在函数的内部 全局...
    # ### 局部变量 与 全局变量
    '''
    局部变量:在函数内部声明的变量就是局部变量.
    全局变量:在函数外部声明的变量或用global关键字在函数内部声明的变量
    
    作用域:作用的范围
    局部变量:作用范围在函数的内部
    全局变量:作用范围横跨整个文件
    
    '''
    
    # (1) 局部变量的获取和修改
    def func():
    	a = 1
    	# 获取局部变量
    	print(a)
    	# 修改局部变量
    	a = 2
    	print(a)
    func()
    
    #(2) 全局变量的获取和修改
    c = 15
    # 获取
    print(c)
    # 修改
    c = 78
    print(c)
    
    # 在函数内部通过global 修改全局变量
    def func():
    	# 如果不加global c 只能获取 不能修改
    	# 加了global c 告诉系统在函数内部允许修改全局变量c 
    	global c
    	print(c)
    	c = 90
    func()
    print(c)
    
    # 在函数内部通过global 定义全局变量
    def func():
    	global ff
    	ff = 980
    
    	
    func()
    print(ff)
    
    """
    python特有:
    如果外部存在该全局变量,那么利用global关键字,可以允许在函数内部修改全局变量
    如果外部不存在该全局变量,那么利用global关键字,可以允许在函数内部定义全局变量
    在使用global 关键字的时候,一般写在函数内部的第一行.
    """
    

      

    转载于:https://www.cnblogs.com/huangjiangyong/p/10829112.html

    展开全文
  • 本文实例讲述了Python3.5局部变量与全局变量作用域。分享给大家供大家参考,具体如下: 1、局部变量与全局变量定义: 在子程序(函数)中定义的变量称为:局部变量;在程序顶级(一开始)定义的变量称为:全局变量。...
  • 主要介绍了Python局部变量与全局变量区别原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 本文实例讲述了Python3.5局部变量与全局变量作用域。分享给大家供大家参考,具体如下:1、局部变量与全局变量定义:在子程序(函数)中定义的变量称为:局部变量;在程序顶级(一开始)定义的变量称为:全局变量。2、...

    本文实例讲述了Python3.5局部变量与全局变量作用域。分享给大家供大家参考,具体如下:

    1、局部变量与全局变量定义:

    在子程序(函数)中定义的变量称为:局部变量;在程序顶级(一开始)定义的变量称为:全局变量。

    2、局部变量与全局变量作用域:

    局部变量作用域:定义该变量的子程序;全局变量作用域:整个程序。

    当局部变量与全局变量同名时,在定义局部变量的子程序内局部变量其作用;其他地方全局变量起作用。

    #!/usr/bin/env python

    # -*- coding:utf-8 -*-

    # Author:ZhengzhengLiu

    school = "Qing hua" #全局变量

    def change_name(name):

    school = "Bei da" #局部变量

    print(school)

    print("before change:",name)

    name = "LIU" #局部变量,只在函数内部生效(局部变量的作用域就是定义该变量的子程序)

    print("after change:",name)

    print(school)

    name = "liu" #全局变量,在整个程序中都有效

    change_name(name)

    print(name)

    运行结果:

    Qing hua

    Bei da

    before change: liu

    after change: LIU

    liu

    注:在函数内部要将局部变量修改为全局变量,需要用global声明(不要这样用:程序多处调用时会导致逻辑混乱,不利于调试)。

    school = "Qing hua" #全局变量

    def change_name(name):

    print("before change:",name)

    name = "LIU" #局部变量,只在函数内部生效(局部变量的作用域就是定义该变量的子程序)

    print("after change:",name)

    global school # 函数内将局部变量改为全局变量用global声明

    school = "Bei da"

    name = "liu" #全局变量,在整个程序中都有效

    change_name(name)

    print(name)

    print("school:",school)

    运行结果:

    before change: liu

    after change: LIU

    liu

    school: Bei da

    3、除了整数和字符串,列表、字典、集合、类中可以在子程序中(子函数)通过修改局部变量达到修改全局变量的目的。

    names = ["liu","zhang","wang"]

    def chang_name():

    names[0] = "sun"

    print(names)

    chang_name()

    print(names)

    运行结果:

    ['sun', 'zhang', 'wang']

    ['sun', 'zhang', 'wang']

    注:在Python中,Ctrl+?快捷键可以实现多行注释。

    关于Python相关内容感兴趣的读者可查看本站专题:《Python函数使用技巧总结》、《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

    希望本文所述对大家Python程序设计有所帮助。

    展开全文
  • 局部变量与全局变量发生冲突时,优先使用局部变量。 #include <stdio.h> /* 全局变量声明 */ int g = 20; int main () { /* 局部变量声明 */ int g = 10; printf ("value of g = %d\n", g); ...

    局部变量与全局变量发生冲突时,优先使用局部变量。

    #include <stdio.h>
     
    /* 全局变量声明 */
    int g = 20;
     
    int main ()
    {
      /* 局部变量声明 */
      int g = 10;
     
      printf ("value of g = %d\n",  g);
     
      return 0;
    }
    
    展开全文
  • 一、局部变量与全局变量 python引用变量的顺序:当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量 在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量...
  • 局部变量与全局变量 # coding:utf-8 局部变量和全局变量 ahead = 'HelloWorld' # 全局变量 showList = [] # 全局变量 def printAhead(): print(ahead) def printOther(): city = 'beijing' #city是局部变量 print...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,526
精华内容 4,210
关键字:

局部变量与全局变量