黑马程序员技术交流社区
标题:
为什么貌似调用了方法,不起作用!
[打印本页]
作者:
王雪冬
时间:
2014-4-16 17:05
标题:
为什么貌似调用了方法,不起作用!
本帖最后由 王雪冬 于 2014-4-16 17:42 编辑
看下面的代码:
@interface Car : NSObject
{// 成员变量
@public
int wheels;
int speed;
}
- (void)run;
@end
@implementation Car
- (void)run
{
NSLog(@"%d个轮子,速度为%dkm/h的车子跑起来", wheels, speed);
}
@end
void test1(Car *newC)
{
newC->wheels = 5;
}
void test2(Car *newC)
{
Car *c2 = [Car new];
c2->wheels = 5;
c2->speed = 300;
newC = c2;
newC->wheels = 6;
}
int main()
{
Car *c = [Car new];
c->wheels = 4;
c->speed = 250;
test2(c);
[c run];
return 0;
}
复制代码
问什么执行完[c run]
打印出来的 wheel=4 speed=200 。而没有重新赋值呀?
作者:
罗冠坤
时间:
2014-4-16 17:09
这个。。。排版。。。
作者:
罗冠坤
时间:
2014-4-16 17:21
嗯因为这句:newC = c2;
这句是把newC的指针指向了c2这个对象,改动的是c2对象的成员属性
所以还是没有影响c这个对象。
如果你写这句。。就会改变c这个对象的成员属性
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2