Rem-LD 发表于 2018-12-16 17:57:10

编译后没东西是怎么肥4???

本帖最后由 Rem-LD 于 2018-12-16 18:22 编辑

#include <stdio.h>

void main()
{
        char *a = "I love laola.";
        char b[] = "I am laola.";
    char *p = b;
        for(; *a != '\0'; a++,p++)
        {
          *p = *a;
        }
        *p = '\0';
        printf("%s\n", a);
    printf("%s\n", b);
}

lemon3 发表于 2018-12-16 18:17:33

代码就打错了呀,循环里面没有右回括吧!仔细检查一下

Rem-LD 发表于 2018-12-16 18:23:12

lemon3 发表于 2018-12-16 18:17
代码就打错了呀,循环里面没有右回括吧!仔细检查一下

这个是粘贴错了,那个去掉还是错的

lemon3 发表于 2018-12-16 18:38:48

#include <stdio.h>

void main()
{
      char *a = "I love laola.";
      char b[] = "I am laola.";
    char *p = b;
      for(; *a != '\0'; a++,p++)
      {
            *p = *a;
            printf("%c", *p);
      }
      *p = '\0';
      
    printf("%s\n", b);
}
我觉得你的想法是用两种方法输出对吧!?
你的代码中第一种a是一个地址呀!怎么能当做输出呢!?

Rem-LD 发表于 2018-12-16 18:56:02

lemon3 发表于 2018-12-16 18:38
#include

void main()


这个我是想把字符串a复制覆盖字符串b,如果把中间的东西注释掉是能编译的,就像下面这样
#include <stdio.h>

void main()
{
        char *a = "I love laola.";
        printf("%s\n", a);
}
上面这个是对的

百里狂生 发表于 2018-12-16 21:48:37

数组越界-------- "I love laola."字符串比"I am laola."字符串长,所以数组越界,访问权限受限

lemon3 发表于 2018-12-16 22:04:06

哦哦刚刚没注意你要干嘛,楼上正解
页: [1]
查看完整版本: 编译后没东西是怎么肥4???