<thead id="kqoxr"></thead>
<blockquote id="kqoxr"></blockquote>
<legend id="kqoxr"><li id="kqoxr"></li></legend>
    1. <sub id="kqoxr"></sub>
      1. <blockquote id="kqoxr"><i id="kqoxr"><noscript id="kqoxr"></noscript></i></blockquote>
        <pre id="kqoxr"></pre>

        91午夜福利在线观看精品,亚洲综合色婷婷中文字幕,亚洲日本欧洲二区精品,竹菊影视欧美日韩一区二区三区四区五区,亚洲色在线V中文字幕,国产精品毛片av999999,精品视频不卡免费观看,亚洲全乱码精品一区二区

        iPhone軟件開發面試題

        時間:2024-10-23 07:38:13 學人智庫

        iPhone軟件開發面試題

          1.根據程序給出問題答案

        iPhone軟件開發面試題

          main()

          {

          int a[5]={1,2,3,4,5};

          int *ptr=(int *)(&a 1);

          printf("%d,%d",*(a 1),*(ptr-1));

          }

          答:2,5

          *(a 1)就是a[1],*(ptr-1)就是a[4],執行結果是2,5

          &a 1不是首地址 1,系統會認為加一個a數組的偏移,是偏移了一個數組的大小(本例是5個int)int *ptr=(int*)(&a 1);?

          則ptr實際是&(a[5]),也就是a 5。原因如下:&a是數組指針,其類型為 int (*)[5],而指針加1要根據指針類型加上一定的值,不同類型的指針 1之后增加的大小不同。是長度為5的int數組指針,所以要加 5*sizeof(int),所以ptr實際是a[5]。但是prt與(&a 1)類型是不一樣的(這點很重要),所以prt-1只會減去sizeof(int*)。

          a,&a的地址是一樣的,但意思不一樣。a是數組首地址,也就是a[0]的地址,&a是對象(數組)首地址,a 1是數組下一元素的地址,即a[1],&a 1是下一個對象的地址,即a[5].

          2.以下為Windows NT下的32位C 程序,請計算sizeof的值??

          void Func ( char str[100] ) ?

          { ?

          sizeof( str ) =? ?

          } ?

          void *p = malloc(100 ); ?

          sizeof ( p ) = ?

          這題很常見了,Func ( char str[100] )函數中數組名作為函數形參時,在函數體內,數組名失去了本身的內涵,僅僅只是一個指針;在失去其內涵的同時,它還失去了其常量特性,可以作自增、自減等操作,可以被修改。Windows NT 32位平臺下,指針的長度(占用內存的大小)為4字節,故sizeof( str ) 、sizeof ( p ) 都為4。

          3.還是考指針,不過我對cocoa的代碼還是不太熟悉

          大概是這樣的

          - (void)*getNSString(const NSString *inputString)

          {

          inputString =@"This is a main test\n";

          return ;

          }

          main(void)

          {

          NSString*a=@"Main";

          NSString *aString= [NSString stringWithString:@"%@",getNSString(a)];

          NSLog(@"%@\n", aString);

          }

          最后問輸出的字符串:NULL,output在函數返回后,內存已經被釋放。

          4.用預處理指令#define聲 明一個常數,用以表明1年中有多少秒(忽略閏年問題)

          #define SECONDS_PER_YEAR (60 * 60 * 24 *365)UL ?

          我在這想看到幾件事 情:

          #define 語法的基本知識(例如:不能以分號結束,括號的使用,等等) ?

          懂得預處理器將為你計算常數表達式的值,因此,直接寫出你是如何計算一年中有多少秒而不是計算出實際的值,是更清晰而沒有代價的。

          意識到這個表達式將使一個16位機的整型數溢出-因此要用到長整型符號L,告訴編譯器這個常數是的長整型數。

          如果你在你的表達式中用到UL(表示無符號長整型),那么你有了一個好的起點。記住,第一印象很重要。

          5.寫一個"標準"宏MIN ,這個宏輸入兩個參數并返回較小的一個。

          ?#define MIN(A,B) ((A) <= (B) ? (A) : (B))

          這個測試是為下面的目的而設的:

          標識#define在宏中應用的基本知識。這是很重要的,因為直到嵌入(inline)操作符變為標準C的一部分,宏是方便產生嵌入代碼的唯一方法,對于嵌入式系統來說,為了能達到要求的性能,嵌入代碼經常是必須的方法。

          三重條件操作符的知識。這個操作符存在C語言中的原因是它使得編譯器能產生比 if-then-else

          更優化的代碼,了解這個用法是很重要的。

          懂得在宏中小心地把參數用括號括起來

          我也用這個問題開始討論宏的副作用,例如:當你寫下面的代碼時會發生什么事?

          least = MIN(*p , b);

          結果是:((*p ) <= (b) ? (*p ) : (*p ))這個表達式會產生副作用,指針p會作三次 自增操作。

          6.寫一個委托的 interface

          @protocol MyDelegate;

          @interface MyClass: NSObject

          {

          id delegate;

          }

          // 委托方法

          @protocol MyDelegate

          - (void)didJobs:(NSArray *)args;

          @end

          7. 寫一個NSString類的實現

          (id)initWithCString:(constchar *)nullTerminatedCString encoding:(NSStringEncoding)encoding;

          (id) stringWithCString: (constchar*)nullTerminatedCString ? encoding: (NSStringEncoding)encoding?

          {?

          NSString *obj;

          obj= [self allocWithZone: NSDefaultMallocZone()];

          obj = [objinitWithCString: nullTerminatedCString encoding: encoding];

          returnAUTORELEASE(obj);?

          }

          8.obj-c有多重繼承么?不是的話有什么替代方法?

          ?cocoa 中所有的類都是NSObject的子類,多繼承在這里是用protocol委托代理來實現的。

          9.obj- c有私有方法么?私有變量呢

          objective-c 類里面的方法只有兩種, 靜態方法和實例方法. 這似乎就不是完整的面向對象了,按照OOP的原則就是一個對象只暴露有用的東西. 如果沒有了私有方法的話, 對于一些小范圍的代碼重用就不那么順手了. 在類里面聲名一個私有方法

          @interface Controller : NSObject { NSString*something; }

          (void)thisIsAStaticMethod;

          - (void)thisIsAnInstanceMethod;

          @end

          @interface Controller (private) -

          (void)thisIsAPrivateMethod;

          @end

          @private可以用來修飾私有變量

          在Objective‐C中,所有實例變量默認都是私有的,所有實例方法默認都是公有的

          10.關鍵字const有什么含意?修飾類呢?static的作 用,用于類呢?還有extern c的作用

          ① const 意味著"只讀",下面的聲明都是什么意思:

          const int a;

          int const a;

          const int *a;

          int * const a;

          int const * a const;

          前兩個的作用是一樣,a是一個常整型數。第三個意味著a是一個指向常整型數的指針(也就是整型數是不可修改的,但指針可以)。第四個意思a是一個指向整型數的常指針(也就是說,指針指向的整型數是可以修改的,但指針是不可修改 的)。最后一個意味著a是一個指向常整型數的常指針(也就是說,指針指向的整型數是不可修改的,同時指針也是不可修改的)。

          結論:

          關鍵字const的作用是為給讀你代碼的人傳達非常有用的信息,實際上,聲明一個參數為常量是為了告訴了用戶這個參數的應用目的。如果你曾花很多時間清理其它人留下的垃圾,你就會很快學會感謝這點多余的信息。(當然,懂得用const的程序員很少會留下的垃圾讓別人來清理的。)

          通過給優化器一些附加的信息,使用關鍵字const也許能產生更緊湊的代碼。

             合理地使用關鍵字const可以使編譯器很自然地保護那些不希望被改變的參數,防止其被無意的代碼修改。簡而言之,這樣可以減少bug的出現。 ?

          (1)欲阻止一個變量被改變,可以使用const 關鍵字。在定義該const變量時,通常需要對它進行初始化,因為以后就沒有機會再去改變它了;

          (2)對指針來說,可以指定指針本身為 const,也可以指定指針所指的數據為 const,或二者同時指?定為 const;

          (3)在一個函數聲明中,const 可以修飾形參,表明它是一個輸入參數,在函數內部不能改變其值;

          (4)對于類的成員函數,若指定其為 const 類型,則表明其是一個常函數,不能修改類的成員變量;

          (5)對于類的成員函數,有時候必須指定其返回值為 const 類型,以使得其返回值不為“左值”。

          ② static 關鍵字的作用:

          (1)函數體內 static 變量的作用范圍為該函數體,不同于 auto 變量,該變量的內存只被分配一次,?因此其值在下次調用時仍維持上次的值;

          (2)在模塊內的 static 全局變量可以被模塊內所用函數訪問,但不能被模塊外其它函數訪問;

          (3)在模塊內的 static 函數只可被這一模塊內的其它函數調用,這個函數的使用范圍被限制在聲明?它的模塊內;

          (4)在類中的 static 成員變量屬于整個類所擁有,對類的所有對象只有一份拷貝;

          (5)在類中的 static 成員函數屬于整個類所擁有,這個函數不接收 this 指針,因而只能訪問類的static 成員變量。

          ③ extern "C" 的作用

          (1)被 extern"C"限定的函數或變量是 extern 類型的;

          extern 是 C/C 語言中表明函數和全局變量作用范圍(可見性)的關鍵字,該關鍵字告訴編譯器,其聲明的函數和變量可以在本模塊或其它模塊中使用。

          (2)被 extern"C"修飾的變量和函數是按照 C 語言方式編譯和連接的;

          extern "C"的慣用法

          (1)在 C 中引用 C 語言中的函數和變量,在包含 C 語言頭文件(假設為 cExample.h)時,需進?行下列處理: ?extern"C" ?{ ?#include"cExample.h" ?} ?而在 C 語言的頭文件中,對其外部函數只能指定為 extern 類型,C 語言中不支持 extern "C"聲明,?在.c 文件中包含了 extern "C"時會出現編譯語法錯誤。

          (2)在 C 中引用 C 語言中的函數和變量時,C 的頭文件需添加 extern "C",但是在 C 語言中不?能直接引用聲明了extern "C"的該頭文件,應該僅將 C 文件中將 C 中定義的 extern "C"函數聲明為?extern 類型。

        【iPhone軟件開發面試題】相關文章:

        iphone鎖屏密碼忘了怎么辦12-31

        投行面試題07-24

        軟件測試面試題01-17

        中層副職競聘面試題09-05

        來看看谷歌的面試題08-17

        濟南稼軒中學小升初面試題07-21

        壓力危機類面試題目突破技巧11-09

        今年最強的面試題和最牛的答卷09-20

        考察個人價值觀的另類面試題02-21

        人力資源行業常見面試題匯總02-03

        主站蜘蛛池模板: 亚洲国产精品久久久久4婷婷 | 最近最新高清中文字幕大全2019 | 国产成年无码久久久久毛片| 无码熟妇人妻AV在线影片免费| 日本熟妇人妻xxxxx人hd| 无码人妻精品一区二区三区蜜桃| 欧美日韩精品一区二区在线播放| 亚洲麻豆av一区二区| 亚洲色网导航| 91牛| 国产成人av| 亚洲成A人V欧美综合| 亚洲性无码av在线| 国产精品视频免费一区二区| 日本一区二区三区视频一| 国产精品一区二区av片| 中文字幕在线第一页免费| 日韩精品中文字幕亚洲| 88XV日韩| 免费超爽大片黄| 成人无码A区在线观看视频| 免费无码av片在线观看中文| 亚洲国产美女精品久久久| 亚洲大尺度在线观看| 郑州市| 男女狂乱x0x0动态图免费| 中文国产不卡一区二区| 日本黄色小说| 精品国产三级a∨在线观看| 色综合久久综合欧美综合网| 国产精品麻豆中文字幕| 国产拗精品一区二区三区| 久久九精品视频| 人妻精品成人| 国产精品丝袜一区二区三区| 麻豆tv入口在线看| 综合欧美视频一区二区三区| 久久人人爽人人爽人人AV东京热| 日韩精品1区| 视频一区 中文字幕| 亚洲一区国色天香|