美文网首页
散碎知识总结

散碎知识总结

作者: 只敲代码不偷桃 | 来源:发表于2016-07-29 18:26 被阅读34次

本文主要是参考简书上其他文章,算是做了一个精简的摘要,目的有两个:1.方便自己以后查找翻阅,过滤掉自己已经熟知的或者比较浅显但是会占篇幅的知识,突出自己不擅长或者容易搞混、忘记的知识;2. 担心作者会删除或者私密文章,将来翻看起来不容易。附上作者文章地址,请移步

一、基础篇

  1. 关键字continute:延续,跳过本次循环。比如:下面这段代码中“continue后面的语句”这句话永远不会被打印。
int number = 10;
    while (number > 0) {
        
        printf("发射子弹 %i\n",number);
        number --;
        if (number %3 == 0) {
            printf("休息一下\n");
            continue; // 跳过本次循环,进行下一次循环
            // 只要看到continue 那么后面的所有语句都不会执行,会执行再次去判断条件表达式
            printf("continue后面的语句\n");
        }
        printf("还有很多复杂的操作\n");
        
    }
局部变量

概念 : 局部变量就是定义在函数,代码块和函数形参列表中的变量,我们就称之为局部变量
作用范围: 从定义的那一行开始 一直知道遇到大括号结束或者遇到return为止
特点:
相同作用域范围内不能出现同名的局部变量
不同作用域欧范围内出 同名的局部变量,内部的局部变量会覆盖外部的局部变量
注意:
局部变量没有固定的初始化值,如果没有对局部变量进行初始化,那么局部变量中是一些随机的值,
所以在开发中 千万不要使用未初始化的局部变量
存储位置:
局部变量存储在栈中,当作用域结束 系统会自动释放栈中的局部变量

全局变量

概念 : 写在函数,代码块,形参列表外 的变量,我们就称之为 全局变量
作用范围 : 从定义的那一行开始 一直 直到文件末尾{暂时这样认为}
特点 :
全局变量 和 局部变量可以同名
如果存在和全局变量同名的局部变量, 那么局部变量会 覆盖 全局变量
注意:
全局变量 如果没有进行初始化, 那么系统默认 会将全局变量初始化为0
存储位置:
全局变量存储在静态区中,他会随着程序的启动而创建,随着程序的结束而结束

static

作用:当使用static 来修饰局部变量,那么会延长局部变量的声明周期,并且会更改局部变量存储的位置,将局部变量从栈转移到静态区中。 (静态区内中的东西,只有在程序结束之后才会释放该储存空间)
应用场景: 当某个方法的调用 频率非常高,而该方法中更有些变量的值是固定不变的 那么这个是会 就可以使用static来修饰该变量,让该变量只开辟一次存储空间 这样可以提高程序的效率和性能

外部(内部)全局变量(exetrn和static)

全局变量分为两种:
外部全局变量:可以被其他文件访问的全局变量,默认情况下所有的全局变量都是外部全局变量。
特点:
可以定义同名的外部全局变量;
多个同名的外部全局变量 指向 同一块存储空间。
内部全局变量: 只能被当前文件访问的全局变量,只要给全局变量加上 static 关键字 就是内部全局变量
特点:
也可以定义多个同名的内部全局变量;
多个同名的全局变量 如果不在同一个文件中,那么指向不同的存储空间。
“只要用static修改的全局变量就是内部全局变量,只能在当前文件中使用,这样就可以提高我们全局变量的安全性”
注意:
如果多个文件中存在同名的 内部全局变量,相互不影响
如果既有外部全局变量 也有内部全局变量, 那么会优先访问内部全局变量
extern:
用于声明一个外部全局变量
声明只需要在使用变量之前声明就可以了
static:
用于定义一个内部全局变量
声明和定义的区别:
声明不会开辟存储空间
定义会开辟存储空间

局部变量、全局变量和成员变量
#import <Foundation/Foundation.h>

@interface Person : NSObject
{
    
    // 写在类的声明的大括号中的变量,我们称之为 成员变量 (属性, 实例变量)
    // 成员变量 只能通过 对象来访问
    // 注意: 成员变量不能离开类, 离开类之后就 不是 成员变量 \
    成员变量不能定义的同时进行初始化
    // 存储: 堆 (当前对象对应的堆的存储空间中)
    // 存储在堆中的数据, 不会被自动释放,只能程序员 手动释放
    int age;
}
@end

@implementation Person

@end

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

int a;
int b = 24;
int main(int argc, const char * argv[])
{
    // 写在函数或者 代码块的变量, 我们称之为 局部变量
    // 作用域 : 从定义的那一行开始, 一直遇到大括号或者 return
    // 局部变量 可以 先定义 再初始化 , 也可以定义的同时初始化
    // 存储 : 栈
    // 存储在栈中的数据 有一个特点, 系统会自动给我们释放
    
    int num;
    {
        int value;
    }
    return 0;
}
实例变量的修饰符

@public (公开的): [可以在本类、其他类]
可以在其他类中方法 被 public修饰的成员变量
也可以在本类中方法 被 boublic 修饰的成员变量
可以子类 在子类中 访问 父类中的 @public修饰的成员变量
@private (私有的): [不可以在其他类 不可以在子类 只能在本类]
不可以在其他类中访问 被 private修饰的成员变量
可以在本类中 访问被 private修饰的成员变量
不可以 在子类中 访问父类中 被private修饰的成员变量
@protected (受保护的): [不可以在其他类 可以在子类 只能在本类]
不可以 在其他类中访问 被 protected 修饰的成员变量
可以 在本类中访问 被protected修饰的成员变量
可以子类 在子类中 访问 父类中的 @protected修饰的成员变量
@package (包:可以在本类、其他类) :[相当于 访问当前的包]
介于 public 和 private之间的 如果是 其他包中访问 那么 就是private的 如果是 当前代码所在的包中 访问就是public的
注意:
默认情况下 所有的实例变量都是protected
实例变量修饰符作用域 : 从现在的位置开始, 一直知道下一个修饰法的出现
如果没有遇到下一个字节变量修饰符, 那么修饰后面所有的实例变长;

相关文章

  • 散碎知识总结

    本文主要是参考简书上其他文章,算是做了一个精简的摘要,目的有两个:1.方便自己以后查找翻阅,过滤掉自己已经熟知的或...

  • 知识点梳理6 散碎点

    Android 散碎知识点 Android 的小块的知识点是太多,太复杂了 常用abd命令 android开发在 ...

  • 散碎

    或许,已记不起 时光流窜,一场逆了疯了乱了平了的洪水 如是,总在无人的时候想起 一海升平,沧海没桑田 一世繁华尽黄...

  • 散碎

    昨后半夜,哗哗降雨,雨夜睡眠状态极佳。 晨醒来驱车赶往药房,我想把冰箱里贮存的桦树茸打成粉,块头大,不便泡水饮用,...

  • 散碎

    一直没有时间做记录。 周末与表姐,表姐夫吃饭,表姐夫是一个发明家。他发明了很多东西,拿了很多大奖,但是他也遇到了很...

  • 六、散碎知识点整理

    1、jsp:usebean标签可以提取页面中的公共service对象,其主要作用也就是这个了。这个标签里面的最重要...

  • 散碎人生

    一株粗且高大的槐花树,四五个成群结队的小伙伴,对岸站着很多人,拿着钓鱼竿子,有熟悉的,有不熟悉的。我们在窃窃私语,...

  • 散碎时光

    每天习惯把时间掰碎了了过,一不小心,日子就过成了沙。 本周工作第一天,很忙,上周有好几项工作都没有收尾,大部分都卡...

  • 散碎时光

    1. 提笔在粉色的信笺上写下字迹,时间交织着回忆好像拧成了一股绳,拉扯着过往那散碎的时光。 似乎时光的洪流并没有冲...

  • 散碎思考

    关系就是当下的生活。并影响着你以后的生活 每个人都有一块阵地需要去坚守,你就是你的阵地。 人这一生最幸运的事莫过于...

网友评论

      本文标题:散碎知识总结

      本文链接:https://www.haomeiwen.com/subject/expzjttx.html