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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© P@sser-by 中级黑马   /  2015-3-14 00:04  /  2151 人查看  /  29 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

我的分够了,还有剩余币,来个互动吧!自己对C或者OC的知识点进行提问,然后根据自己的理解,自己给出回答,可以是对知识点的总结与新的理解,尽量全面。我会根据所提供的内容+1-3个黑马币,重复别人的不给,对别人的自问自答作精彩补充的+1,我的币也不多,就是想互动一下,送完为止。
例如:设计一个类需要考虑什么?
答:
1> 类名
* 类名的第一个字母必须是大写
* 不能有下划线
* 多个英文单词,用驼峰标识
2> 属性
3> 行为(功能)
......

29 个回复

倒序浏览
我来先提问,面向对象有哪三大特性?

评分

参与人数 1黑马币 +2 收起 理由
P@sser-by + 2

查看全部评分

回复 使用道具 举报
miosec 发表于 2015-3-14 01:05
我来先提问,面向对象有哪三大特性?

封装,继承,多态

评分

参与人数 1黑马币 +2 收起 理由
P@sser-by + 2 赞一个!

查看全部评分

回复 使用道具 举报
-(void) myMethod {
NSString * myString = [[NSString alloc] init];                   //retainCount=1
Foo * myFoo = [[Foo alloc] initWithName:myString];      //retainCount=1
NSLog("Foo's Name:%@", [myFoo getName]);
[myFoo release];                             //retainCount=0 so deallocate
[myString release];                         //retainCount=0 so deallocate
}
上面这个函数里面,Foo * myFoo = [[Foo alloc] initWithName:myString];  这也算是对myString 的一次引用啊,这是实参,我形参指向他,
就相当于一个形参指针 = myString,为什么不算一次引用呢?应该先retain啊,retainCount等于2,为什么啊?

评分

参与人数 1黑马币 +2 收起 理由
P@sser-by + 2 赞一个!

查看全部评分

回复 使用道具 举报
我来自问自答一个,Objective-C的类可以多重继承么?可以采用多个协议么?
回复 使用道具 举报
夏皮冬絺 发表于 2015-3-14 14:27
我来自问自答一个,Objective-C的类可以多重继承么?可以采用多个协议么?

不可以多重继承,可以采用多个协议。

评分

参与人数 1黑马币 +3 收起 理由
P@sser-by + 3 赞一个!

查看全部评分

回复 使用道具 举报
原型:extern int strlen(char *s);

  用法:#include

  功能:计算字符串s的(unsigned int型)长度

  说明:返回s的长度,不包括结束符NULL。

  举例:

  // strlen.c

  #include

  #include

  main()

  {

  char *s="Golden Global View";

  clrscr();

  printf("%s has %d chars",s,strlen(s));

  getchar();

  return 0;

  }

评分

参与人数 1黑马币 +3 收起 理由
P@sser-by + 3 淡定

查看全部评分

回复 使用道具 举报
ab63333334 发表于 2015-3-14 14:44
原型:extern int strlen(char *s);

  用法:#include

代码不完整吧,两个#include后面的东西呢...
回复 使用道具 举报
c语言中数据类型和java的不同处?

C的int的位数是根据当前操作系统的位数决定的,比如用的是XP,那这个int就占用32位(4字节),java的int一律32位。
C的char占8位(是为了应付ASCII码),java的char占16位(是为了更好支持Unicode),
C++中的基本数据类型可以看成类,而java中不能。

评分

参与人数 1黑马币 +3 收起 理由
P@sser-by + 3 赞一个!

查看全部评分

回复 使用道具 举报
我自问自答一个 :xml 解析有几种方式?
答:有DOM,SAX,STAX等

评分

参与人数 1黑马币 +1 收起 理由
P@sser-by + 1 不是C和OC的内容,过于简略

查看全部评分

回复 使用道具 举报
scanf(),getchar(),gets()三者的用法和区别?
回复 使用道具 举报
关于函数形参作用域疑惑?
回复 使用道具 举报
岳挺 发表于 2015-3-14 21:34
scanf(),getchar(),gets()三者的用法和区别?

读取字符时:
scanf()以Space、Enter、Tab结束一次输入,不会舍弃最后的回车符(即回车符会残留在缓冲区中);
getchar()以Enter结束输入,也不会舍弃最后的回车符;
读取字符串时:
scanf()以Space、Enter、Tab结束一次输入
gets()以Enter结束输入(空格不结束),接受空格,会舍弃最后的回车符

评分

参与人数 1黑马币 +3 收起 理由
P@sser-by + 3 其实这三个各自还有很多特点,可以查找资料.

查看全部评分

回复 使用道具 举报
一步一个脚印 发表于 2015-3-14 21:35
关于函数形参作用域疑惑?

分为二种情况,一是作为函数声明时的形参,大家都知道,是函数原型作用域,这个作用域决定了函数有多个参数时,参数不能同名,因为在同一作用域,这个作用域就时函数原型作用域。二是作为函数定义时候的形参,查阅相关文档,发现是把函数定义时候的形参的作用域规定在整个函数体,有点费解,我是这么理解的,函数定义时候的多个形参,相当于函数体内的局部变量,因为他们在同一作用域,即都在函数体内,所以函数定义时候的形参不能同名,然后 函数内部自己定义的局部变量,作用域也是在函数体内,当然也不能和形参同名。over
回复 使用道具 举报
一步一个脚印 发表于 2015-3-14 21:36
分为二种情况,一是作为函数声明时的形参,大家都知道,是函数原型作用域,这个作用域决定了函数有多个参 ...

如果是指针作为形参的话该如何解释其作用域?指针传的是地址,指针是可以操作内存里的值,是不是算是超出函数体了呢?其他类型是值传递,作用域界定为函数体好理解,那么指针呢?
回复 使用道具 举报
P@sser-by 发表于 2015-3-15 01:00
如果是指针作为形参的话该如何解释其作用域?指针传的是地址,指针是可以操作内存里的值,是不是算是超出 ...

首先确定一点指针变量作为形参它的作用域和其他类型的变量一样也是在函数体中。原因如下:首先你明确下作用域是什么,它指的是标识符在程序中的可见范围。指针变量作为函数声明时候的形参肯定也是函数原型作用域,即有多个指针变量作为参数时不能同名。然后讨论指针作为函数定义时候的形参,它和普通变量没有2样,你只能在函数体范围内能访问到他们。至于你说指针变量改变了内存的值,这是在函数调用时候发生的事情,比如你传进了一个数组名a作为实参,在函数内部,你可以通过*a访问到第一个数组元素,*(a+1)访问到第二个,你当然可以改变他们的值,这就是所谓的间接访问,和作用域没有关系呀。和作用域没有关系,一定要知道这个,这个是*这个间接访问符号的功能或者说用法。亲能给分了吗 ,都11点多,我还在回复

评分

参与人数 1黑马币 +3 收起 理由
P@sser-by + 3 赞一个!

查看全部评分

回复 使用道具 举报
一步一个脚印 发表于 2015-3-15 23:13
首先确定一点指针变量作为形参它的作用域和其他类型的变量一样也是在函数体中。原因如下:首先你明确下作 ...

记住c中只有传值这中方式,至于你传进了一个指针起到了传址调用一样的效果,其实不然,你传的指针或值都只是一份拷贝
回复 使用道具 举报
android和ios移动互联的区别和市场?
答:Android是基于Java体质的运行的东西  提供一个Java虚拟机,在虚拟机上写Java代码去展现功能  什么机型都可以去做  现在市场处于涨的姿态
      ios是基于oc语言的东西 直接写东西。所以往往说苹果的东西总是快一点。可能就是这个原因!市场目前紧缺,所以强手  值得去学习  不过作为一个开发者应该要懂得更多  才是必须要的  

评分

参与人数 1黑马币 +3 收起 理由
P@sser-by + 3 淡定

查看全部评分

回复 使用道具 举报
OC内存管理:
有加必有减,一一对应;
详细就是:非ARC:通过retain,alloc,copy等创建对象时,引用计数器加1,那么必须有对应的release或者autorelease对计数器进行减 1操作;
宏观方面:如果方法中有对计数器进行加或减操作,那么调用方法的代码段无需对应的减或加操作。release不是销毁对象,而是对计数器减1;
autorelease自动回收池可以 创建无限个,可以嵌套,好处是不用关心对象的释放时间,不关心什么时候调用release,缺点不能精确控制,适用于占用内存较小的数据类型;
循环引用一个必须用retain,另一个则用assign
ARC:不是内存回收机制,只是自动生成了代码,减少了程序员的负担;
判断回收准则:只要没有强指针指向对象,就会释放对象
循环引用一个必须用strong,另一个则用weak

评分

参与人数 1黑马币 +3 收起 理由
P@sser-by + 3 赞一个!

查看全部评分

回复 使用道具 举报
想问一下,oc的block在开发用得多不多?好像感觉还挺好用的
还有block是不是一个对象啊?
如果时对象,那跟其他一般类对象有没有不同之处?谢谢~~
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马