iPhone开发面试宝典:实战题目解析与技巧

4星 · 超过85%的资源 需积分: 3 179 下载量 83 浏览量 更新于2024-07-30 5 收藏 33KB DOCX 举报
本文档汇集了一些针对iOS开发人员的面试题,特别是关于iPhone开发方面的。内容涉及C语言编程基础、指针理解和内存管理,以及Objective-C/Cocoa基础知识。以下是部分题目及解答的关键知识点: 1. **数组和指针操作**: - `main` 函数中的代码演示了如何通过指针访问数组元素。`*(a+1)` 访问的是数组 `a` 的第二个元素,即 `a[1]`,输出值为2。`*(ptr-1)` 实际上访问的是数组 `a` 的倒数第二个元素 `a[4]`,因为 `ptr` 指向 `a[5]`,所以 `-1` 相对于 `int*` 类型的指针会向前移动 sizeof(int) 个单位,即 `a[4]`,输出值为5。理解指针和数组索引的关系是关键。 2. **C++ sizeof运算符应用**: - `voidFunc` 函数中的 `sizeof(str)` 计算的是字符数组 `str` 的长度,但在函数体内部,数组名失去了它的长度含义,变成一个指向数组首元素的指针,因此 `sizeof(str)` 在这个上下文下等于指针的大小,通常是4字节(在32位Windows NT下)。 - 对于动态分配的内存 `void*p = malloc(100);`,`sizeof(p)` 也是指针的大小,同样为4字节。 3. **Objective-C 函数指针**: - `-(void)getNSString(constNSString*inputString)` 是一个Objective-C方法,返回一个指向 NSString 的指针。这里的 `getNSString` 接受一个 NSString 类型的指针作为参数,并将其赋值为字符串 "This is a main test\n"。注意,`[NSString stringWithString:@"%@", getNSString(a)]` 是创建一个新的 NSString,使用传入的字符串值。 - 在 `main` 函数中,`NSString *aString` 初始化为 "Main",然后通过 `getNSString` 方法获取字符串并存储在 `aString` 中,最后输出处理后的字符串。 这些题目涵盖了数组操作、C++基本语法、Objective-C对象和指针的理解,这些都是面试时常被考察的基础知识,掌握它们有助于提高面试的成功率。