|
蓝森林 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 :
分析的是对的 |
| |