标识符
给程序中的各种成员、角色起一个名字,方便程序员使用。
变量名、函数名、类…都需要标识符。
标识符的定义需要遵循一些规则:
① 大小写是区分的。
int ab;
int Ab;
上面两个标识符 ab 和 Ab 代表不同的标识符。
②可以由字母、数字、下划线_和美元符号$组成,但是不能以数字开头。
③不能是Object-C里的关键字,但是可以包括关键字。
int _int; √
int int; ×
④不能包括分隔符和运算符。
int in,t; ×
变量
语法:
声明变量: <数据类型><变量名>[=<初始值>]; PS:<>表示必须有的,但可变的,[]表示可选的。
//声明变量的时候同时初始化
int i1 = 10;
//变量必须要初始化以后才能使用
int i2;
给变量赋值:<变量名> = <新的、相同类型的值>;
//第一次给变量赋予值,叫做初始化
i2 =100;
//……
i2 =593;
一个示范程序
#import<Foundation/Foundation.h>
int main(intargc,char * argv[])
{
inti1 = 100;
int i2;
NSLog(@”%d”,i1);//此处输出100是确定的
//为了确保变量的值是确定的,一定要给变量赋值
NSLog(@”%d”,i2);//此处输出什么是不确定的,取决于分配给变量的内存块存储的值是什么
}
数据类型
基本类型
四个整数类型:
short int : 也就是short,占16位,短的整数
int : 占32位,整数
long int : 也就是long,占64位,长整数
long long : 占64位,长整数
在Object-C里面,整数大小范围是不固定的,上面的范围只是通常的范围,需要使用sizeof 函数来计算。
sizeof可以用来计算变量占用了多少内存,通常占用多少字节内存来计算多少位,就可以知道实际范围。
Object-C整数特点
没有硬性规定整数所占的空间
但通常:short最小,int必须比short大,long比int 大,long long 比long 大
可以用sizeof()函数看到实际占用大空间
unsigned : 可以在整数类型前面加上unsigned,表示该整数的最高位不是符号位,而是数值位,这样变量不能表示负数,但是正整数会大一倍。
三种表示形式
八进制 : 0 开头
十进制 : 默认
十六进制 :0x开头
两个浮点类型
float: 32位
double : 64位,双精度浮点,表示的范围更宽。
实际使用的时候,更多使用double。
BOOL类型
用于逻辑判断,有两个值,YES和NO,BOOL型本质是整数,可以直接把整数赋予给BOOL型的变量。另外,BOOL只是表示真假,所以不该有其他的值,故不建 议在实际工作中使用数字代替YES、NO。
char类型
char表示字符,使用一个字节存储。所以单个的char变量无法存储中文。本质上,char是一个无符号整数。
枚举型
定义方法:①enum<枚举名>{<N个枚举值,使用逗号隔开>};
②enum{<N个枚举值>}<变量名1>,<变量名2>, ……
数据类型转换
自动类型转换
把整数、字符的变量赋值给浮点,值没有变化
把浮点变量复制整数、字符,数值的小数点会被丢弃
当把取值范围大的变量赋值给取值范围小的变量时,可能会发生溢出。
强制类型转换
<原始类型> <变量1> =<值>;
<目标类型><变量2> = (<目标类型>) <变量1>;
表达式类型自动提升
表示范围比较广的变量,和范围小的变量运算时,结果的类型和范围广的类型相同
运算符
算术运算符: + 、- 、* 、/ 、% 、++、--
赋值运算符: =
从右向左计算, 先把右边计算出来,再将计算出来的值“放入”左边的变量中。
位运算符:>> : 右移N位,相当于除以2的N次方。
<< : 左移N位,相当于乘以2的N次方。
& : 与
| :或
~ :非
^ :异或
扩展后的赋值运算符: +=、-=、*=、/=……,几乎所有的双目运算符都可以与=结合成扩展后的赋值运算符。
比较运算符:比较两个值、变量、表达式之间大小关系的运算符。得到结果总是BOOL值(其实0或1)
逻辑运算符:&& :与
|| : 或
! : 非
^ : 异或
逗号运算符 : ,
三目运算符 : ? :
不同运算符有优先级(谁先、谁后)和结合性(控制从左到右,从右向左)
最好的方式,通过括号来保证运算符谁先、谁后。