变量
- 变量的声明:告诉编译器有一个给定类型和名称的变量。
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 | || |
左到右 |
条件 | ?: |
右到左 |
分配 |
= += -= *= /= %= >>= <<= &= ^= |=
|
右到左 |
逗号 | , |
网友评论