指针与对象有什么区别?!
怎么深入理解指针与对象的概念?一个是面向过程中的经典,一个是面向对象中的经典,我总觉得两者有着千丝万缕的联系,他们具体有哪些相同与不同呢?...
怎么深入理解指针与对象的概念?一个是面向过程中的经典,一个是面向对象中的经典,我总觉得两者有着千丝万缕的联系,他们具体有哪些相同与不同呢?
展开
1个回答
展开全部
简单来说,指针是一栋大楼的门牌号码,它的对象是这栋大楼。
程序说明,主要是为程序中用到的变量开内存单元。
程序开头的指针说明干什么呢,也是开内存单元,为的是放门牌号码。无论楼大楼小那怕是一间屋,它的指针,也就是门牌号码,都一般大,只占一个内存单元。
如果程序中要用到钉了某门牌号的大楼的房间怎么办呢?
你要另给大楼分配内存才行。否则你只有门牌,没有楼。
例如:
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语言中的指针与对象常令人混淆不清,但为什么要弄出个指针呢?这是为了加快运算寻址速度,提高程序效率。
程序说明,主要是为程序中用到的变量开内存单元。
程序开头的指针说明干什么呢,也是开内存单元,为的是放门牌号码。无论楼大楼小那怕是一间屋,它的指针,也就是门牌号码,都一般大,只占一个内存单元。
如果程序中要用到钉了某门牌号的大楼的房间怎么办呢?
你要另给大楼分配内存才行。否则你只有门牌,没有楼。
例如:
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语言中的指针与对象常令人混淆不清,但为什么要弄出个指针呢?这是为了加快运算寻址速度,提高程序效率。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询