iPhone开发面试题集:内存理解与Cocoa编程实例

4星 · 超过85%的资源 需积分: 3 3 下载量 155 浏览量 更新于2024-09-13 收藏 33KB DOCX 举报
本文档主要涵盖了iPhone开发面试题集中的部分题目和解释,涉及C语言编程基础以及Cocoa框架的理解。首先,针对一段示例代码,解释了数组指针的概念和操作。在`main()`函数中,`int`数组`a`的指针`ptr`被定义为`(&a+1)`,实际上这并不是指针加1那么简单,因为数组指针类型`int(*)[5]`使得`ptr`指向数组的第6个元素(即`a[5]`),而非紧接在`a`后的内存地址。通过`*(a+1)`和`*(ptr-1)`的输出,展示了数组元素的访问方式。 接着,讨论了Windows NT下32位C++中的`sizeof`运算符。在`voidFunc(char str[100])`函数中,虽然`str`是一个字符数组的引用,但在函数内部,它被视为指向数组的第一个元素的指针,因此`sizeof(str)`的结果是4字节,与指针类型相同。同样,当动态分配内存的指针`p`被`sizeof`运算符处理时,也会得到4字节的大小。 最后,题目涉及到Objective-C的Cocoa框架,要求实现`- (void *)getNSString:(const NSString *)inputString`方法。在这个方法中,输入参数`inputString`是一个`const`指针,但代码中尝试将`@"This is a main test\n"`赋值给它,这在Cocoa中是不推荐的,因为`const`字符串不能被修改。而在`main()`函数中,尝试通过`getNSString`获取字符串并存储到`aString`中,然后通过`NSLog`打印出来,展示了字符串操作的基本流程。 总体而言,这份面试题集涵盖了数组指针的深入理解、基本数据类型在内存中的表示、C++函数参数的特性,以及Objective-C中字符串操作的基础知识。对于准备进行iPhone开发面试的人来说,这些题目旨在考察应聘者的底层编程技能和对Cocoa框架的熟悉程度。