蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 http://www.lslnet.com 2006年6月6日 10:18


char *ptr 与 char ptr[] 在空间分配的区别

在函数体中用到字符串时通常用以下两种方法:

1、char *ptr ="local  IP address" ;  与

2、char ptr[25];
ptr="local  IP address"  

这两种方法在空间分配上的区别:

第二种是在编译时就分配出25个字节的空间,预留待用。第一种首先是先定义一个指针ptr,然后让ptr指向"local  IP address" 所在的地址。这种理解对吗?

char *ptr 与 char ptr[] 在空间分配的区别

char *ptr ="local IP address" ;等同与char *p;
p="local ip adress";一般不建议使用

char *ptr 与 char ptr[] 在空间分配的区别

-->

还有人问这个问题。

char ptr[25];
ptr="local IP address"

是错的, 应该 char ptr[25] = "locao IP address"


char *p = "foo";

则 "foo" 在只读数据段, p 指向它。

char p[] = "foo";

则 字符数组 p[] 在堆栈,可写, 内容为"foo"。 同时在数据段有一个只读“备分”。

char *ptr 与 char ptr[] 在空间分配的区别

char *ptr 与 char ptr[] 在空间分配的区别

to win_hate   :
分析的是对的



Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com