| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2181 人关注过本帖
标题:这段源代码的红色部分解释一下
只看楼主 加入收藏
dcpfeiniao
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2015-6-3
结帖率:20%
收藏
已结贴  问题点数:20 回复次数:6 
这段源代码的红色部分解释一下
#include <stdio.h>
void fun(char p1[], char p2[])
{
  int i,j;
  for(i=0;p1[i]!='\0';i++)  ;  
      for(j=0;p2[j]!='\0';j++)
          p1[i++]=p2[j];
   p1[i]='\0';

}

main()
{    char s1[80], s2[40] ;void NONO ();

     printf("Enter s1 and s2:\n") ;
     scanf("%s%s", s1, s2) ;
     printf("s1=%s\n", s1) ;
     printf("s2=%s\n", s2) ;
     printf("Invoke fun(s1,s2):\n") ;
     fun(s1, s2) ;
     printf("After invoking:\n") ;
     printf("%s\n", s1) ;
     NONO() ;
}
搜索更多相关主题的帖子: include 源代码 Enter 
2016-03-19 22:28
小菜鸟fanfan
Rank: 2
等 级:论坛游民
威 望:1
帖 子:42
专家分:36
注 册:2016-1-23
收藏
得分:7 
乍一看还以为是表情符号   楼主拿来逗我呢
2016-03-21 10:37
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:7 
看样子是连接两个字符串,把p2放到p1的后面。

   唯实惟新 至诚致志
2016-03-21 10:40
未来大仙
Rank: 6Rank: 6
来 自:黑窟窿
等 级:侠之大者
威 望:4
帖 子:263
专家分:491
注 册:2015-6-20
收藏
得分:7 
就是p2数组复制到p1数组的函数,但是,如果p1数组是一个本来特别长特别长的数组,那就会把p2一直复制在p1那里, 比如p1={"abcdefg"}p2={"123"}那么 p1最后会变成 1231231

好好学习,天天向上!
2016-03-21 11:30
dcpfeiniao
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2015-6-3
收藏
得分:0 
回复 4楼 未来大仙
i和j是怎么变化的特别是p1[i++]=p2[j++]
2016-03-30 08:41
小白小白一只
Rank: 2
来 自:吉林大学
等 级:论坛游民
帖 子:16
专家分:41
注 册:2016-3-30
收藏
得分:0 
回复 5楼 dcpfeiniao
p1[i++]=p2[j]意思就是,p1[i]=p2[j],i++,先复制过去然后i自增
2016-03-30 14:05
丰峰风疯
Rank: 2
等 级:论坛游民
威 望:1
帖 子:5
专家分:15
注 册:2016-3-6
收藏
得分:0 
第一个for的循环体是空语句,所以只执行循环判定部分,一直移动到p1的'\0'位置上停止。
第二个for,判定p2指向的字符是不是'\0',如果不是赋值给p1位置指的字符,然后p1在循环体部分向后移动一个字符的位置,p2在循环判定部分向后移动一个字符的位置,直到p2移动到'\0'停止,这时p1指向了新的位置,没有对p1指向的新位置的字符赋值,所以最后还要在这个位置给p1加一个字符串结束符。
2016-03-30 14:33
快速回复:这段源代码的红色部分解释一下
数据加载中...
 
   



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

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