| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1146 人关注过本帖
标题:受不了了啊,不懂!!!
只看楼主 加入收藏
maomaostyle
Rank: 1
等 级:新手上路
帖 子:45
专家分:9
注 册:2009-5-5
结帖率:100%
收藏
已结贴  问题点数:18 回复次数:10 
受不了了啊,不懂!!!
程序代码:
#include<stdio.h>
#include<string.h>
main()
{ char a[80]="AB",b[80]="LMNP";
  int i=0;
  strcat(a,b);
      while(a[i++]!='\0') b[i]=a[i];
  puts(b);
}

这个题结果怎么是LBLMNP???
搜索更多相关主题的帖子: include 
2009-11-24 21:06
caojulians
Rank: 2
等 级:论坛游民
帖 子:39
专家分:67
注 册:2009-11-15
收藏
得分:5 
while(a[i++]!='\0') b[i]=a[i];
=======================================
while中i++了(从0变成1了),b[i]和a[i]自然从下标1开始计了--b[0]未变。
2009-11-24 21:13
xy4919961
Rank: 5Rank: 5
等 级:职业侠客
帖 子:199
专家分:362
注 册:2009-10-24
收藏
得分:0 
#include<stdio.h>
#include<string.h>
main()
{ char a[80]="AB",b[80]="LMNP";
  int i=0;
   strcat(a,b);
    while(a[i]!='\0')b[i]=a[i++];
     puts(b);

  getch();
   return 0;
}

QQ群:96348241
2009-11-24 21:14
blueskystadi
Rank: 1
等 级:新手上路
帖 子:7
专家分:5
注 册:2009-11-24
收藏
得分:5 
strcat(a,b)后a[80]="ABLMNP", b[i]=a[i]之前i已经加1了。
2009-11-24 21:27
maomaostyle
Rank: 1
等 级:新手上路
帖 子:45
专家分:9
注 册:2009-5-5
收藏
得分:0 
结果怎么解释啊????
2009-11-24 21:32
maomaostyle
Rank: 1
等 级:新手上路
帖 子:45
专家分:9
注 册:2009-5-5
收藏
得分:0 
怎么没人来了呢???
2009-11-25 08:46
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:8 
LSes已经解释的很清楚了。。。
strcat(a,b)后a[80]="ABLMNP", 然后进入while循环,先判断循环条件a[i++]!='\0',你的代码中这个逻辑判断语句是先逻辑判断再进行i++运算,也就是说此时i = 1,就是说进入循环体之前,i=1;此时相当于a的第一个字符后面的赋给b第一个值后面的(因为i已经是1了)。。即那个循环是把 "BLMNP"赋给了b[1]。。。又因为b[0]的值是L没有被覆盖。。。。b[0]和b[1]及后面的合的起来就是
"LBLMNP"...
    更正方法诸LS说的也很清楚了···
2009-11-25 08:58
m456m654
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:783
专家分:2806
注 册:2009-9-17
收藏
得分:0 
一个是明白strcat()后a为什么,二是明白自增运算的i先增后增,在什么地方增。
2009-11-25 09:48
crystal111
Rank: 2
等 级:论坛游民
帖 子:25
专家分:21
注 册:2009-11-15
收藏
得分:0 
#include<stdio.h>
#include<string.h>
main()
{ char a[80]="AB",b[80]="LMNP";
  int i=0;
  strcat(a,b);
for(i=0;i!='\n';i++)
b[i]=a[i];
puts(b);}
2009-11-25 18:12
hoho568
Rank: 5Rank: 5
等 级:职业侠客
帖 子:101
专家分:378
注 册:2009-7-14
收藏
得分:0 
以下是引用crystal111在2009-11-25 18:12:39的发言:

#include
#include
main()
{ char a[80]="AB",b[80]="LMNP";
  int i=0;
  strcat(a,b);
for(i=0;i!='\n';i++)
b=a;
puts(b);}
猛一看蒙了。。
for (i =0; a[i] !='\n'; i++)
2009-11-25 18:17
快速回复:受不了了啊,不懂!!!
数据加载中...
 
   



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

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