黑马程序员----全局变量和局部变量(按作用域分)

根据变量的作用域,可以将变量分为:

1.局部变量

  • 定义:在函数(代码块)内部定义的变量(包括函数的形参)
  • 作用域:从定义变量的哪一行开始,一致到代码块结束
  • 生命周期:从定义变量的哪一行开始分配存储空间,代码块结束后,就会被回收
  • 没有固定的初始值

2.全局变量

  • 定义:在函数(代码块)外面定义的变量
  • 作用域:从定义变量的哪一行开始,一直到文件结尾(能被后面的所有函数共享)
  • 生命周期:程序一启动就会分配存储空间,程序退出时才会被销毁
  • 默认的初始值是0

代码练习:

#include <stdio.h>

int age;

void test()
{
    int age;

    age = 20;
}

int main()
{
    printf("%d\n", age); // 在main函数内没有age变量就会去函数外面找,由于外面的变量age是一个全局变量,虽然没有进行初始化,但是默认就是0

    test(); // test函数执行完,里面定义的age变量就会被销毁,这里访问的还是全局变量age

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

    return 0;
}
时间: 2024-10-11 23:43:00

黑马程序员----全局变量和局部变量(按作用域分)的相关文章

黑马程序员---OC---点语法、属性作用域、@property与@synthesize、id、构造方法、分类

------iOS培训.Java培训.Android培训, iOS学习型技术博客,期待与您交流------                                    点语法 点语法的本质是方法调用:调用对象成员变量的setter和getter 是编译器特性,编译器帮忙转的 p.age = 25;       // 等价于 [p setAge:25]; int a = p.age;     // 等价于 int a = [p age]; // 访问成员变量不能用点语法,而是 p->_a

黑马程序员-c语言变量作用域问题

c语言中的变量作用域总结 不管什么语言,main好像总是程序的入口,大括号是它的内容:变量的作用域总是困扰着我们,接下来,我们循序渐进的搞明白c语言中的变量作用域,首先得知道c是弱类型的语言,弱类型表现在很多方面: 1:你可以直接在程序中写一个常量,然后一个分号:1: 2:在定义函数时,void型的函数可以return:int型的可以不用写返回值. ---还有很多 下面我们一步一步开始:首先在main中定义的变量当然作用于整个main函数了 1:在main中定义变量 #include<stdio

【黑马程序员】————static和extern关键字2-对变量的作用

C语言和Java都有全局变量的概念,但是它们的用法还是有些差别的. 一.在Java中,全局变量的定义没有严格的位置规定 全局变量可以定义在类的最前面,也可以定义在类的最尾端,也就说一个方法可以访问在它之后定义的变量. 可以看到,第4行定义的test方法可以访问第8行定义的变量a,这是完全没有问题的. 二.在C语言中,全局变量定义的位置是有限制的 默认情况下,一个函数不可以访问在它后面定义的全局变量 在第4行定义的main函数中尝试访问第9行定义的变量a,编译器直接报错了. 解决这个错误的话,有2

黑马程序员_毕向东_Java基础视频教程_Java基础学习知识点总结

黑马程序员_毕向东_Java基础视频教程 Java基础学习知识点总结 2016年01月06日  day01 一.基础知识:软件开发 1.什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集合. 2.常见的软件:系统软件:如:DOS,Windows,Linux等.应用软件:如:扫雷,迅雷,QQ等. 3.什么是开发?制作软件. 二.基础知识:人机交互方式 4.软件的出现实现了人与计算机之间的更好的交互. 5.交互方式:图形化界面:这种方式简单直观,使用者易于接受,容易上手操作.命令行方式:

黑马程序员——20.1,IO流,FileWriter,FileReader

------<ahref="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 黑马程序员--20,IO流,FileWriter,FileReader /* IO流的介绍: IO流式用来处理数据传输的,与IO流相关的类都定义在了java.io包里面 按照操作类型分:字节流和字符流,其中的字符流与文字编码表有关. 字节流

黑马程序员:从零基础到精通的前端学习路线

随着互联网的深入发展,前端开发工程师一跃成为市场上非常抢手的人才.很多同学,包括以前做UI的.Java的.或者对于IT完全零基础的同学都想学习前端.下图是网上流传甚广的一张前端学习思维导图,很多初学者表示看到这些密密麻麻的知识点就已经晕了.确实,前端是一门涵盖面很广的学科.但是想学前端的你也不用慌张,内容虽多但有迹可循,只要循序渐进就不怕学不好前端! 那么前端开发到底需要学什么?应该怎么学?接下来黑马程序员前端学院教你如何从零基础学习前端. 一.前端开发入门 在入门阶段,你首先要学会最基本的技能

黑马程序员——【Java高新技术】——代理

一.“代理概述”及“AOP概念” (一)代理概述 1.问题:要为已存在的多个具有相同接口的目标类的各个方法增加一些系统功能,例如,异常处理.日志.计算方法的运行时间.事务管理等等,如何去做? 解答:编写一个与目标类具有相同接口的代理类,代理类的每个方法调用目标类的相同方法,并在调用方法时加上系统功能的代码. 2.代理原理图,如下: 3.代理的优点 如果采用工厂模式和配置文件的方式进行管理,则不需要修改客户端程序,在配置文件中配置是使用目标类.还是代理类,这样以后很容易切换.例如,想要日志功能时就

黑马程序员_OC学习笔记之@property和@synthesize

[objc] view plaincopyprint? <span style="font-size:24px;">#import <Foundation/Foundation.h> @interface Person : NSObject { int _age; int age; int _height; int height; int _weight; int weight; int _money; int money; } @property int ag

黑马程序员_Java基础加强(下)

8.注解类 注解相当于一种标记,加了注解就等于打上了某种标记,没加就等于没打特殊标记,开发工具和其他程序可以用反射来了解你的类及各种元素上有无何种标记,看你有什么标记就去干什么事,标记可以加在包.类.字段.方法,方法的参数以及局部变量上. 注解的应用结构图: 为注解增加属性 定义基本类型的属性和应用属性 在注解类中增加String color(); @MyAnnotation(color = "red") 用反射方式获得注解对应的实例对象后,再通过该对象调用属性对应的方法 MyAnno