阳台煮酒

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

绝大多数C字符串操作事实上都使用的是指针,如下程序:

 1 #include <stdio.h>
 2 
 3 int main(void)
 4 {
 5     char *mesg = "Don't be a fool! ";
 6     char *copy;
 7 
 8 
 9     copy = mesg;
10     printf("mesg=%s,&mesg=0x%0x,value=0x%0x\n",
11 
12              mesg,&mesg,mesg);
13 
14     printf("copy=%s,&copy=0x%0x,copy=0x%0x",
15              copy,&copy,copy);
16 
17     return 0;
18 }

编译运行:

 

分析:

  

 输出第一项:mesg和copy以字符串形式%s输出,两个字符串都是“Don't be a fool!”

 第二项是指针的地址

 第三项是指针的值,指针的值是指针中存放的地址,mesg指向0x423ffc,copy也是如此。因此,字符串本身没有被复制,语句copy = mesg所做的事就是产生指向同一个字符串的第二个指针。显然,比起复制50个单个元素,复制一个地址更有效率。

posted on 2014-05-11 19:49  阳台煮酒  阅读(193)  评论(0编辑  收藏  举报