首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这两段代码为啥一个运行成功,一个运行失败

2013-09-23 
这两段代码为什么一个运行成功,一个运行失败?#include stdio.hvoid main(){char a[20]a[20]你好pri

这两段代码为什么一个运行成功,一个运行失败?


#include "stdio.h"
void main()
{
char a[20];
a[20]="你好";
printf("%s\n",a);//运行失败
}




#include "stdio.h"
void main()
{
char a[20] = "你好";
printf("%s\n",a);//运行成功
}


[解决办法]
数组定义之后是不能这样赋值的
用strcpy()吧
[解决办法]
    char a[20];
    a[20]="你好";
    printf("%s\n",a);//运行失败

这样写,在VC环境下编译都不过,这样定义a是一个字符数组,对字符数组赋值要用strcpy这样的函数,比如:
strcpy(a, "你好");

 char a[20] = "你好";
    printf("%s\n",a);//运行成功
这样写,a其实就是一个字符型指针,指向字符常量"你好",所以没有问题。
[解决办法]
你这个编译的时候就不能通过,不用说是运行了!
[解决办法]
a[20]="你好";相当于你将数组的下标20赋值。出现问题1:a[20]数组最大到19  2:a[2]起码的下标是一个字符型赋值,你这里也不对。
第二为啥对我就不解释了

热点排行