简单c语言问题高手帮看下!!!

来源:百度知道 编辑:UC知道 时间:2024/06/25 16:46:41
#include "stdio.h"
main()
{
char a[5], b[4]; //代码①
int i=0,j=0; //定义数组及变量
scanf("%s",a);
scanf("%s",b); //分别输入两个字符串
while(a[i]!='\0')
i++; //搜索到字符串的结尾处
while(a[i++]=b[j++]); //将字符串b和字符串a连接起来
printf("%s",a); //输出连接后的新字符串
}

首先帮忙解释下 while(a[i++]=b[j++]); 这段代码
while()循环括号中需要添加条件表达式,而且后面不能加;为什么这里却是赋值表达式
而程序运行无错误?

执行的是将b串的字符一个一个的复制到a串之后

c中只要不为0的条件即为真,而a[i++]=b[j++]的值就是a[i++]的值
也是b[i++]的值,当b[i++]='\0'时,条件被判定为0,循环退出

while(a[i++]=b[j++]);是当a[i++]=b[j++]时执行while循环这程序好像有点问题

你这是干嘛啊 ~~~~~~~~