woainilp 发表于 2020-5-13 16:24:53

C语言

#include <stdio.h>
#include<string.h>
void main()
{
char a="AB",b="LMNP";
int i=0;
strcat(a,b);
while(a!='\0')
b=a;
puts(b);
}
麻烦会的能不能帮着分析一下,看不懂,它的运行是怎么来的,为什么L跑第一个上了

ba21 发表于 2020-5-13 16:56:16


extern char *strcat(char *dest, const char *src);
把src所指向的字符串(包括“\0”)复制到dest所指向的字符串后面(删除*dest原来末尾的“\0”)。要保证*dest足够长,以容纳被复制进来的*src。*src中原有的字符不变。返回指向dest的指针
#include <stdio.h>
#include<string.h>
void main()
{
char a="AB",b="LMNP";
int i=0;
strcat(a,b); // a = "ABLMNP"

while(a!='\0') // 循环1. i=0
b=a;      // 循环1. i++后,这里 b = a

// 上2句执行完
// b = "LBLMNP" 第1个'L'是b中原值,没有被修改到,"BLMNP"是从a处开始复制到b开始处得到的值

puts(b); // 输出b
}

sunrise085 发表于 2020-5-13 17:00:23


#include <stdio.h>
#include<string.h>
void main()
{
    char a="AB",b="LMNP";
    int i=0;
    strcat(a,b);//将字符串a和b进行拼接,并赋值给a,拼接后a="ABLMNP"
    while(a!='\0')//当a不为'\0'的时候,执行下面语句,注意这里的i++,先执行条件判断语句,后进行i++
      b=a;//第一次循环,i=1得到b=a,之后逐次循环,吧a的其余字符也赋值给b对应的位置。注意:b没有变,还是原来的字符'L'
    puts(b);
}
页: [1]
查看完整版本: C语言