| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1103 人关注过本帖
标题:求 c语言中的字符串考备
取消只看楼主 加入收藏
tfgood
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-12-3
收藏
 问题点数:0 回复次数:5 
求 c语言中的字符串考备
#include<stdio.h>
main()
{
   static void copy(char *p1,char *p2);
   char *a="sky",*b="moon";

   printf("%s\n%s\n",a,b);

   copy(a,b);

   printf("%s\n%s\n",a,b);
   
}

static void copy(char *p1,char *p2)
{
   
   while((*p2=*p1)!='\0')
   {
      p1++;
      p2++;
   }
  
   *p2='\0';
}

目的:想完成sky对moon字符串的复制

main函数中的*a,*b如换用a[],b[]是可以实现的

为什么指针不能实现

谢谢大侠指教  
搜索更多相关主题的帖子: c语言 字符 
2008-12-03 15:09
tfgood
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-12-3
收藏
得分:0 
回复 第2楼 ying8501 的帖子
能说得清楚些吗
谢谢
2008-12-04 20:01
tfgood
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-12-3
收藏
得分:0 
回复 第4楼 dubukuangye 的帖子
main函数中的*a,*b如换用a[],b[]是可以实现的
2008-12-04 21:15
tfgood
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-12-3
收藏
得分:0 
回复 第6楼 ying8501 的帖子
b并没有指向一个可用的内存空间?????????
b是一个指针变量 它指向“moon”的起始地址
怎么能说没可用空间
如果没有可用空间   那“moon”保存在哪?
2008-12-04 23:04
tfgood
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-12-3
收藏
得分:0 
是这样吗??
在c编译系统中 对字符数组和字符串数组 都是按指针来处理的
也就是说  不管你用int a[],char a[],int *a[]系统都是为次建立一个指针
对他们的操作就是对此指针的操作
上面的*b="moon" 系统实现是 在用户区分配内存存入“moon”比如分配在
内存的 2000h,2002h,2003h,2004h 然后用*b指向2000h单元的内容 也就是说
给b=2000h 所以怎么能说b是随机地址呢?
这个过程和对数组的操作一模一样
为什么这个地址就是只读的呢?????????????
2008-12-05 13:35
tfgood
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2008-12-3
收藏
得分:0 
能解释一下嘛  谢谢
2008-12-05 20:08
快速回复:求 c语言中的字符串考备
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011942 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved