[学习笔记]Objective-C与C学习交接(2)

来源:互联网 发布:程序员个人工作体会 编辑:程序博客网 时间:2024/04/30 03:53

OC的流程控制与数组

数组的使用 OC的数组索引也是从0开始的。OC中没有提供方法或属性来访问数组的长度,但我们可以通过sizeof()函数来计算数组的长度,计算方法如下:

sizeof(数组变量 )  / sizeof(数组变量[0]); 

上式中 sizeof(数组变量 ) 将可以返回整个数组占用的字节数,  

sizeof(数组变量[0])将返回第一个数组元素占用的字节数,相除的结果就是数组元素的个数。

---------------------------------

对于OC中的数组使用,以C语言中熟悉的回旋数组为例

//回旋数组#import <Foundation/Foundation.h>#define SIZE 7int main(int argc, const char * argv[]){    @autoreleasepool    {        int array[SIZE][SIZE];        int direction=0;        int i,j,k;                for(i=1,j=0,k=0;i<=SIZE*SIZE;i++)        {            array[j][k]=i;            if((j+k==SIZE-1))            {                if(j>k)                    direction=1;                else    direction=3;            }               if((j==k)&&(j>=SIZE/2))            {                direction=2;            }             if((j==k-1)&&(j<SIZE/2))            {                direction=0;            }                                    switch (direction)            {                case 0://DOWN                    j++;                    break;                case 1://right                    k++;                    break;                case 2://UP                    j--;                    break;                case 3://LEFT                    k--;                    break;            }        }                for(int i=0;i<SIZE;i++)        {            for(j=0;j<SIZE;j++)            {                if(array[i][j]<10)                {                    printf("0%d  ",array[i][j]);                }                else                {                    printf("%d  ",array[i][j]);                }            }            printf("\n");        }    }        return 0;}

回旋数组需要注意的就是三条转弯线;而此段代码中可以观察到OC与C的数组使用大致相同。

上段代码运行结果如下:


0 0