美文网首页
Objective-C 学习笔记(二)变量、常量、运算符

Objective-C 学习笔记(二)变量、常量、运算符

作者: 小道清泓 | 来源:发表于2019-03-20 20:31 被阅读0次

    详细教程地址(中文)
    详细教程地址(英文)

    变量

    • 变量的声明:告诉编译器有一个给定类型和名称的变量。
    extern int i; // 声明变量i
    int j; // 声明并定义变量j
    
    • 变量的定义:告诉编译器为变量创建存储的位置和数量。
    int i; // 声明并定义变量i
    int j = 0; // 声明并定义的同时初始化变量j
    
    i = 1; // 初始化变量i
    
    • 变量的作用域:
    类型 作用域
    全局变量 该程序的全部文件
    局部变量 只在其声明并定义的方法或函数中使用
    静态全局变量 只在当前文件有效
    静态局部变量 与局部变量的作用域一致

    静态变量或全局变量:采用静态存储方式,存储在静态区,程序一开始便分配空间直到程序结束。
    局部变量:采用动态存储方式,存储在堆、栈区,根据使用而去分配或释放空间。

    了解更多(简书上看到一位,写得很详细)

    常量

    • 概念:常量指程序在执行期间不会改变的固定值。

    • 定义:

    /* 使用 #define 预处理命令(#define执行的只是简单的文本替换,所以不需要分号结束)*/
    #define PI 3.1415926
    
    /* 使用关键字const */
    const float PI = 3.1415926;
    

    在编程时,经常使用大写表示常量。

    运算符

    • 示例:
    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            int a = 5, b = 4;
            
            // 算术运算符
            NSLog(@"%d\n", (a++)+b);    // a = 5, b = 4 --> 9
            NSLog(@"%d\n", a-b);        // a = 6, b = 4 --> 2
            NSLog(@"%d\n", a*(--b));    // a = 6, b = 3 --> 18
            NSLog(@"%d\n", a/b);        // a = 6, b = 3 --> 2
            NSLog(@"%d\n", a%b);        // a = 6, b = 3 --> 0
            
            // 此时a = 6, b = 3
            
            // 关系运算符(非零值均可看成是true)
            NSLog(@"%d\n", a==b);       // a = 6, b = 3 --> 0 false
            NSLog(@"%d\n", a!=b);       // a = 6, b = 3 --> 1 true
            NSLog(@"%d\n", a>b);        // a = 6, b = 3 --> 1 true
            NSLog(@"%d\n", a<b);        // a = 6, b = 3 --> 0 false
            NSLog(@"%d\n", a>=b);       // a = 6, b = 3 --> 1 true
            NSLog(@"%d\n", a<=b);       // a = 6, b = 3 --> 0 false
            
            a = 3; b = 0;
            
            // 逻辑运算符
            NSLog(@"%d\n", a&&b);       // a = 3, b = 0 --> 0 true and false --> false
            NSLog(@"%d\n", a||b);       // a = 3, b = 0 --> 1 true or false --> true
            NSLog(@"%d\n", !a);         // a = 3 --> 0 not true --> false
            NSLog(@"%d\n", !b);         // b = 0 --> 1 not false --> true
            
            a = 3; b = 7;
            
            // 位运算符(注释以二进制表示)
            NSLog(@"%d\n", a&b);        // a = 0011, b = 0111 --> 0011 3
            NSLog(@"%d\n", a|b);        // a = 0011, b = 0111 --> 0111 7
            NSLog(@"%d\n", a^b);        // a = 0011, b = 0111 --> 0100 4
            NSLog(@"%d\n", a<<1);       // a = 0011 --> 0110 6
            NSLog(@"%d\n", a>>1);       // a = 0011 --> 0001 1
        }
        
        return 0;
    }
    
    • 优先级:
    分类 运算符 关联性
    后缀 () [] -> . ++ -- 左到右
    一元 + - ! ~ ++ -- (type)* & sizeof 右到左
    相乘 * / % 左到右
    相加 + - 左到右
    位移 << >> 左到右
    关系 <<= >>= 左到右
    相等 == != 左到右
    按位AND & 左到右
    按位XOR ^ 左到右
    按位OR | 左到右
    逻辑AND && 左到右
    逻辑OR || 左到右
    条件 ?: 右到左
    分配 = += -= *= /= %= >>= <<= &= ^= |= 右到左
    逗号 ,

    相关文章

      网友评论

          本文标题:Objective-C 学习笔记(二)变量、常量、运算符

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