#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;
}
原文:http://my.oschina.net/u/2410306/blog/519786