文档章节

第01天OC语言(12):局部变量和全局变量以及成员变量对比

lyh2017iOS
 lyh2017iOS
发布于 2017/07/11 00:06
字数 479
阅读 0
收藏 0
点赞 0
评论 0

#####一、概念 #####二、代码

#import <Foundation/Foundation.h>
#pragma mark 类
#pragma mark main函数
@interface Person : NSObject
{
    /*
     写在类声明的大括号中的变量, 我们称之为 成员变量(属性,实例变量)
     成员变量 只能 通过类对象来访问
     注意 : 成员变量 不能离开类, 离开类 之后就不是 成员变量
           成员变量 不能东一的同时进行初始化
     存储 : 堆 (当前对象对应的堆的存储空间中)
     // 存储在堆中的数据, 不会被自动释放,只能程序员 手动释放
    */
    int age;
//    int age = 10; // Expected';' at  end declaration list
}
@end

@implementation Person
@end

// 写在函数 和 大括号外部的变量 , 我们称呼为全局变量
// 作用域 : 从定义的哪一行开始, 一直到文件末尾
// 局部变量 可以先定义再初始化, 也可以定义的同时 初始化
// 存储 : 静态区
// 程序已启动 就会分配存储空间, 知道程序结束才会释放

int a;
int main(int argc, const char * argv[])
{
    // 写在函数 或者代码块中的变量, 我们称之为局部变量
    // 作用域 : 从定义的哪一行开始, 一直到 遇到大括号 或者 return
    // 局部变量 可以先定义再初始化, 也可以定义的同时初始化
    // 存储 : 栈
    // 存储在 栈中的 数据有一个特点, 系统会自动给我们释放
    int num = 22;
    {
        int age;
    }
    
#pragma mark 1.存储的空间
    /*
    (栈)     局部变量 : 存储在 栈中的 数据有一个特点, 系统会自动给我们释放
     (静态区) 全局变量 : 程序已启动 就会分配存储空间, 知道程序结束才会释放
     (堆)    成员变量 : 存储在堆中的数据, 不会被自动释放,只能程序员 手动释放
     */
    return 0;
}

image.png

© 著作权归作者所有

共有 人打赏支持
lyh2017iOS
粉丝 1
博文 354
码字总数 137380
作品 0
朝阳
Objective-C高级编程之block篇

block是C语言的一项重要的特性。在很多其他计算机语言中都有类似的概念,比如lamda表达式,闭包等。那么block是什么?简而言之,block是带有自动变量的匿名函数。本文将以这句话展开,对blo...

凝望向北 ⋅ 2017/04/24 ⋅ 0

OC-语法:static,extern,const修饰符,静态变量,局部变量,全局变量

一。C语言中的static的作用 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)第一个作用:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函...

水一样的人儿 ⋅ 2015/12/29 ⋅ 0

Objective-C学习总结——函数与变量的语法特性

Objective-C学习总结——函数与变量的语法特性 Objective-C是一种以C为基础,并集合Smalltalk特征扩展出来的面向对象的语言。在本章节中主要记录总结OC中函数与变量的C语言特性。 全局变量和...

C语言开发 ⋅ 2017/12/13 ⋅ 0

OC 封装

首先介绍一下设置实例变量(setter)方法和访问实例变量(getter)的方法 ,那么问题来了,set和get方法的作用是什么呢?这里不得不提到一个概念『封装』。 我们之前使用类属性时,都会在花括号的...

JoshSone ⋅ 2016/08/16 ⋅ 0

C 语言初级入门(9)--函数与指针 以及结构体的介绍

1、通过实参向函数 传递函数名 或 指向函数的指针变量 1.1、指向函数指针变量的定义: 在C语言中函数名代表该函数的入口地址; 区分:指向函数的指针和返回值是指针; 类型函数: double(fp)...

每天打起精神即可 ⋅ 2013/05/01 ⋅ 0

OC基础学习:内存中的区域

OC中,内存一般分为五大区域 栈 存储局部变量和实参 由编译器自动分配释放 存储空间有限 地址是连续的 地址分配从大到小 访问速度快 堆 允许程序员自己申请的空间,需要程序员自己控制,会出...

Andy_Ron ⋅ 2017/10/26 ⋅ 0

Static、const、extern区别

一、Static、const、extern区别 -------------------------------STATIC-------------------------------- static 全局的,可以改的,如果在一个类中声明static,类中其他地方用到的时候,也...

HelloSwift ⋅ 2016/08/08 ⋅ 0

《Java从小白到大牛精简版》之第4章 Java语法基础

本章主要为大家介绍Java的一些基本语法,其中包括标识符、关键字、保留字、常量、变量、表达式等内容。 4.1 标识符、关键字和保留字 任何一种计算机语言都离不开标识符和关键字,因此下面将详...

tony关东升 ⋅ 2017/10/12 ⋅ 0

iOS底层原理总结 - 探寻block的本质(一)

面试题 block的原理是怎样的?本质是什么? block的作用是什么?有什么使用注意点? block的属性修饰词为什么是copy?使用block有哪些使用注意? block在修改NSMutableArray,需不需要添加b...

xx_cc ⋅ 05/20 ⋅ 0

从 JavaScript 作用域说开去

目录 1.静态作用域与动态作用域 2.变量的作用域 3.JavaScript 中变量的作用域 4.JavaScript 欺骗作用域 5.JavaScript 执行上下文 6.JavaScript 中的作用域链 7.JavaScript 中的闭包 8.JavaSc...

一缕殇流化隐半边冰霜 ⋅ 2017/05/30 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 45分钟前 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 7

mysql in action / alter table

change character set ALTER SCHEMA `employees` DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci ;ALTER TABLE `employees`.`t2` CHARACTER SET = utf8mb4 , COLLAT......

qwfys ⋅ 今天 ⋅ 0

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

MySQL

查看表相关命令 - 查看表结构    desc 表名- 查看生成表的SQL    show create table 表名- 查看索引    show index from  表名 使用索引和不使用索引 由于索引是专门用于加...

stars永恒 ⋅ 昨天 ⋅ 0

easyui学习笔记

EasyUI常用控件禁用方法 combobox $("#id").combobox({ disabled: true }); ----- $("#id").combobox({ disabled: false}); validatebox $("#id").attr("readonly", true); ----- $("#id").r......

miaojiangmin ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部