1 / 16
文档名称:

iPhone开发工程师面试题.doc

格式:doc   大小:100KB   页数:16页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

iPhone开发工程师面试题.doc

上传人:wzt520728 2017/5/25 文件大小:100 KB

下载得到文件列表

iPhone开发工程师面试题.doc

相关文档

文档介绍

文档介绍:一、(一共三十题) 1. 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 之后增加的大小不同。 a 是长度为 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)=? 答案: sizeof( str)、 sizeof (p) 都为 4。 3. 还是考指针, 不过我对 cocoa 的代码还是不太熟悉大概是这样的- NSString *getNSString(void) { NSString *output=@"This isa main test\n"; return output; } -main(void) { NSString *a=@"Main"; NSString *aString = [NSString stringWithString:@"%@",getNSString(a)]; NSLog(@"%@\n", aString); } 答案: 最后问输出的字符串:NULL , output 在函数返回后,内存已经被释放。 4. 用预处理指令#define 声明一个常数,用以表明 1 年中有多少秒(忽略闰年问题) 写一个" 标准"宏 MIN ,这个宏输入两个参数并返回较小的一个。答案: #define SECONDS_PER_YEAR (60 * 60* 24* 365)UL 5. 写一个委托的 interface 答案: ***@protocol MyDelegate; ***@interface MyClass: NSObject { id <MyDelegate> delegate; } // 委托方法***@protocol MyDelegate - (void)didJobs:(NSArray *)args; ***@end 6. 写一个 NSString 类的实现- (id)initWithCString:(const char *)nullTerminatedCString encoding:(NSStringEncoding)encoding; -(void)dealloc; 答案: + (id) stringWithCString: (const char*)nullTerminatedCString encoding: (NSStringEncoding)encoding { NSString *obj; obj = [self allocWithZone: NSDefaultMallocZone()]; obj = [obj initWithCString: nullTerminatedCString encoding: encoding]; return AUTORELEASE(obj); } 7. obj-c 有多重继承么? 不是的话有什么替代方法? 答案: cocoa 中所有的类都是 NSObject 的子类,多继承在这里是用 protocol 委托代理来实现的,你不用去考虑繁琐的多继承, 的多态特性在 obj-c 中通过委托来实现. 8. obj-c 有私有方法么? 私有变量呢答案: objective-c - 类里面的方法只有两种, 静态方法和实例方法在 Objective ‐C 中,所有实例变量默认都是受保护的,所有实例方法默认都是公有的 9. 关键字 const 有什么含意? 关键字 volatile 有什么含