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

2019-03-20  本文已影响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 || 左到右
条件 ?: 右到左
分配 = += -= *= /= %= >>= <<= &= ^= |= 右到左
逗号 ,
上一篇 下一篇

猜你喜欢

热点阅读