黑马程序员技术交流社区

标题: 请教关于变量的用法,定义,初始化,引用,释放空间 [打印本页]

作者: tabor    时间: 2015-6-9 13:26
标题: 请教关于变量的用法,定义,初始化,引用,释放空间
基本变量,字符,数字,字符串,数组:定义时可以不初始化,但不初始化会引起不必要的错误,如int a; 如不初始化,系统会将之前没有释放的内存与a组合,输出看到的是很大的数据,有没有,那有没有办法将系统之前没有释放的内存先释放下,毕竟这种没有释放的内存太影响运行?
特殊变量,指针:定义时,可以不初始化,但是不是说如果指针不指向内存地址的话,就会释放吗?怎么理解C中只定义指针变量却不初始化的问题?

作者: tabor    时间: 2015-6-11 14:55
脑中OC与C越来越混乱。。。。有没有整理过这方面的
作者: Elors    时间: 2015-6-11 16:01
OC的变量并不是没有引用就会自动释放,自动释放那是Java的垃圾回收机制。
OC的变量都有自己的一个计数器,只有计数器为0时,系统才会自动调用dealloc方法来释放内存。
作者: Elors    时间: 2015-6-11 16:06
至于你说的声明变量同时必须初始化不然垃圾数据的问题。
你可以自己尝试一下,你声明一个NSString 只进行alloc操作, 你看看你可以运行?
作者: tabor    时间: 2015-6-12 16:39
目前的疑惑都是在了解了OC再强化整理C时出现的,其中关于指针是C中定义如 char *p; 就可以一直用,而OC上要init才行

这两种机制要怎么理解?
作者: 这是829    时间: 2015-6-13 23:16
围观学习啦,大家加油!!!
作者: ⒈苆都s.兲憶    时间: 2015-6-14 00:15
指针指定义不初始化就是野指针,会有问题的!
作者: tabor    时间: 2015-6-21 00:06
看来是C可以用只定义不用初始化的指针,而OC的指针一定要初始化。两种语言各用好处!
作者: 丁铭检    时间: 2015-6-21 08:05

围观学习啦,大家加油!!!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2