地点:北京市朝阳区东四环中路78号大成国际中心A2-7A11
联系电话:
010-59626720
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 不是首地址 +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[0] 的地址, &a 是对象(数组)首地址,
a+1
是数组下一元素的地址,即
a[1],&a+1
是下一个对象的地址,即
a[5].
2.运用下列哪些类或方法执行代码可以避免阻塞当前线程。
A NSOperationQueue
B NSCoder
C NSTimer
D NSThread
E schedule
F performSelector:withObject:afterDelay
ADF
3.UIScrollView用到了什么设计模式?
4.这段代码有什么问题,如何修改
for(int i=0;i<someLargeNumber;i++)
{
NSString *string = @"Abc";
string = [string lowercaseString];
string = [string stringByAppendingString:@"xyz"];
NSLog(@"%@",string);
}
5.obj-c的优缺点。
objc优点:
1) Cateogies
2) Posing
3) 动态识别
4) 指标计算
5)弹性讯息传递
6) 不是⼀一个过度复杂的 C 衍⽣生语⾔言
7) Objective-C++ 与 C++ 可混合编程
缺点:
1) 不⽀支援命名空間
2) 不⽀支持运算符重载
3)不
⽀
支持多重继承