A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨勇 中级黑马   /  2014-5-1 01:49  /  1485 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨勇 于 2014-5-7 10:09 编辑

//声明一个car类
@interface Car :NSObject
{@public
   int wheels;// 轮子个数
   int speed;// 速度
}
- (void)print;
@end

//实现
@implementation Car
- (void) print
{
   NSLog(@"速度为%d,轮子个数为%d",speed,wheels);
}
@end

//函数test
void test(Car *car)
{
    Car *c2=[Car new];
   c2->wheels=4;
   c2->speed=200;
   car=c2;
   car->speed=300;
}

//主函数
int main()
{
  Car *c=[Car new];
  c->wheels=2;
  c->speed=100;
// 调用test
  test(c);
  [c    print];//打印什么值,我希望的是能够分析一下为什么的,而不是结果。
  [c2  print];//可以调用成功么?为什么?打印结果为多少?
  [car  print];//这句呢?
}


谢谢!

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

2 个回复

正序浏览
[c    print];//打印什么值,我希望的是能够分析一下为什么的,而不是结果。
    /*
     速度为100,轮子个数为2
     
     这句的意思是给指针c才所指向对象发送一条print消息 。  
     会找到Car.m 中,去执行。
     
     car.m中的  NSLog(@"速度为%d,轮子个数为%d",speed,wheels);
     这句话是谁在调用speed, wheels 就输出谁的值。
     
     所以结果是:速度为100,轮子个数为2
     */
    Car *c2=[Car new];
    c2->wheels=2;
    c2->speed=100;

   
[c2  print];//可以调用成功么?为什么?打印结果为多少?

    /*不成功,你的在心建立一个
     Car *c2=[Car new];
     c2->wheels=2;
     c2->speed=100;
     */
   
[car  print];
   /*
    这句话的意思是:给指针car所指向的对象发送一条print消息
    你没有car这个指针。
    */

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马