#include "stdio.h"
#include "string.h"
main()
{char *a="abcdefg",*b="12345";
strcpy(a,b);
printf("%s",a);
}
如上,在win-TC里可以正常编译和输出了。可是在VC里编译通过,没有输出任何信息,还出现个对话框:
-----------------------------------------------------
1.exe
1.exe 遇到问题需要关闭。我们对此引起的不便表示抱歉。
如果你正处于进程当中,信息有可能丢失
关于此错误的其他信息 单击此处
调试(B) 关闭(C)
----------------------------------------------------- 我将代码的第四行 char *a="abcdefg",*b="12345";改写成:char a[]="abcdefg",b[]="12345"; 就可以正常输出了。
为什么???
不是数组和指针都可以用来定义字符串的吗?为什么偏要将*a改成a[],*b改成b[]呢?玩什么TC里不用呢?哪里出错了呢?
很多玩什么呢,想了大半天搞不懂。。
新手啊。前辈们指点一下,可帮新手节省很多时间的~~~~谢谢。。
#include "string.h"
main()
{char *a="abcdefg",*b="12345";
strcpy(a,b);
printf("%s",a);
}
如上,在win-TC里可以正常编译和输出了。可是在VC里编译通过,没有输出任何信息,还出现个对话框:
-----------------------------------------------------
1.exe
1.exe 遇到问题需要关闭。我们对此引起的不便表示抱歉。
如果你正处于进程当中,信息有可能丢失
关于此错误的其他信息 单击此处
调试(B) 关闭(C)
----------------------------------------------------- 我将代码的第四行 char *a="abcdefg",*b="12345";改写成:char a[]="abcdefg",b[]="12345"; 就可以正常输出了。
为什么???
不是数组和指针都可以用来定义字符串的吗?为什么偏要将*a改成a[],*b改成b[]呢?玩什么TC里不用呢?哪里出错了呢?
很多玩什么呢,想了大半天搞不懂。。
新手啊。前辈们指点一下,可帮新手节省很多时间的~~~~谢谢。。
指针指的是常量, 你不能对常量赋值,
例如你不能把'a'变成'b'.
char a[]是一个变量,它的值是"abcdefg".
THANKS`