#import <Foundation/Foundation.h> /* 1.C语言数组和oc数组的区别 数组:具备相同的数据类型的变量的有序集合 int ages[63]; 类型 数组名[元素个数]; 2.NSArray 不可变数组 一个是 可变数组 */ int main(int argc, const char * argv[]) { @autoreleasepool { //OC数组 是任意的对象地址类型的集合 //实例化数组对象的时候 最后要以nil做为结束 //1.实例化一个数组对象 NSArray *arr=[[NSArray alloc]initWithObjects:@"one",@"two",@"thress", nil]; NSLog(@"arr:%@",arr); //2.实例化数组 用一个数组实例化另一个数组 NSArray *arr2=[[NSArray alloc]initWithArray:arr]; NSLog(@"arr2:%@",arr2); //3.类方法实例化对象 NSArray *arr3=[NSArray arrayWithObjects:@"oc",@"c",@"java",@"C#",nil]; NSLog(@"arr3:%@",arr3); //4 NSArray *arr4=[NSArray arrayWithObject:arr3]; NSLog(@"arr4:%@",arr4); //操做数组对象 //获取数组元素个数 NSInteger count=[arr4 count]; NSLog(@"count:%ld",count); //获取元素 指定索引、下标 NSString *str=[arr4 objectAtIndex:1]; NSLog(@"str:%@",str); //循环和数组 //普通for 循环遍历oc数组 for (NSInteger i=0; i<[arr4 count]; i++) { NSLog(@"%@",[arr4 objectAtIndex:i]); } //快速枚举 --》就是一个循环 /* for (元素类型 变量名 in 集合对象的地址) { } */ /* 快速枚举过程--》只能读数组的内容 不能修改数组内容 第0次循环 会把 数组arr4的第0个元素 给obj 第1次循环 会把 数组arr4的第1个元素 给obj 第2次循环 会把 数组arr4的第2个元素 给obj 以此类推 知道数组结束 循环就结束了 */ for (id obj in arr4) { NSLog(@"obj->%@",obj); } } return 0; }