黑马程序员技术交流社区
标题:
关于OC编译中,int函数的赋值与运用
[打印本页]
作者:
847374032
时间:
2016-1-27 22:21
标题:
关于OC编译中,int函数的赋值与运用
/*
枪类:
名称:Gun
属性:型号(_size),子弹个数(_bulletCount)
行为:射击
士兵类
名称:Soldier
属性:姓名(_name) life level(等级)
行为:开枪
*/
#import <Foundation/Foundation.h>
#pragma mark - 枪类
@interface Fun:NSObject
{
@public
//型号(_size)
NSString *_cha;
//子弹个数(_bulletCount)
int _ziDan;
}
-(void)kaiQiang;
@end
@implementation Fun
-(void)kaiQiang{
if(_ziDan>0){
_ziDan --;
NSLog(@"哒!剩余子弹数:%d",_ziDan);
}else{
NSLog(@"您没有子弹了");
}
}
@end
#pragma mark - 士兵类
@interface shiBing:NSObject
{
@public
//姓名(_name)
NSString *_name;
// life
int life;
// level(等级)
int level;
}
-(void)Bydd:(Fun *)fin;
@end
@implementation shiBing
-(void)Bydd:(Fun *)fin{
[fin kaiQiang];
}
@end
int main(int argc,const char * argv[])
{
@autoreleasepool
{
int i;
shiBing *xsd = [shiBing new];
xsd -> _name = @"超级战士";
xsd -> level = 4;
Fun *ak47 = [Fun new];
ak47 -> _cha = @"Ak47";
ak47 -> _ziDan = i;
NSLog(@"现在4级,请输入您需要的子弹数");
scanf("%d",&i);
for(int a = 1 ; a<=i ; a++){
[xsd Bydd:ak47];
}
}
return 0;
}
在这段代码中,main函数里的i变量应该被赋值为 用户输入的函数, 但是实际运行时 输出的结果却是 全部为0且循环输入的次数, 不解!
作者:
847374032
时间:
2016-1-27 22:22
顶!! 求大神解答啦!~ {:2_30:}
作者:
学以致用表初衷
时间:
2016-1-28 12:19
按照我的理解。你当初赋值你只是把 i的值赋值给 子弹了
而后又 3赋值给i这个地址了。而子弹的 指针并没有改变。
NSLog(@"现在4级,请输入您需要的子弹数");
scanf("%d",&i);
这两句放在赋值的上边就好了
作者:
847374032
时间:
2016-2-1 21:15
谢谢!说的对!
作者:
u37kl
时间:
2016-2-8 11:07
对对象中ziDan变量赋值为0,然后改变i的值,此时ziDan变量还是0,应该是先调用scanf函数,为i赋值,然后将i值赋给ziDan变量
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2