文章正宗 西山:指针与对象有什么区别?!

来源:百度文库 编辑:神马品牌网 时间:2024/05/03 06:49:48
怎么深入理解指针与对象的概念?一个是面向过程中的经典,一个是面向对象中的经典,我总觉得两者有着千丝万缕的联系,他们具体有哪些相同与不同呢?

简单来说,指针是一栋大楼的门牌号码,它的对象是这栋大楼。

程序说明,主要是为程序中用到的变量开内存单元。

程序开头的指针说明干什么呢,也是开内存单元,为的是放门牌号码。无论楼大楼小那怕是一间屋,它的指针,也就是门牌号码,都一般大,只占一个内存单元。

如果程序中要用到钉了某门牌号的大楼的房间怎么办呢?
你要另给大楼分配内存才行。否则你只有门牌,没有楼。
例如:
char *buff; -- buff是存放字符大楼门牌的单元
buff = (char *) malloc(32*sizeof(char)); -- 给钉了门牌号“buff“的大楼,建造32个放间,每个房间大小是一个字符。

程序中有时不用malloc来给指针分配对象,而用另一种方法,让指针有个对象(或对象有个指针),例如:
float *p; -- p是存放浮点大楼门牌的单元
float a[100]; -- 浮点大楼
a[9] = 9.0;
p = &a[0];
printf("%f\n",p[9]);

上面的p = &a[0]; &a[0]算出浮点大楼的门牌号,把门牌号码放到存放门牌号码的单元p. 以后用p去找浮点大楼的放间。

C语言中的指针与对象常令人混淆不清,但为什么要弄出个指针呢?这是为了加快运算寻址速度,提高程序效率。

区别,,,大大的不同

联系,,似乎不怎么多

他们的差别简直是一个天上一个地下,

我看您还是别问了,

差别太大了。

几乎没有共同点,

当然是有联系,

可是这个联系就谈论好像一个茶杯和一辆汽车之间的联系差不多

压根不用去考虑这个问题

至于经典,

我觉得谈不上,

只能算是两个很重要的、很基本的概念罢了。

我能想到的惟一联系就是:

C编写C++这种面向对象的语言的时候用到了指针。

可是C不止编写C++用到了指针,

编写别的程序也用到了指针。