简单的C语言错误(问题出在哪了)

来源:百度知道 编辑:UC知道 时间:2024/06/09 11:12:26
main()
{ int c;
int z[10];
z[10]="aaa";
printf("%s",z);
getch();
}
显示是乱码 为什么不是AAA
char z[10];
z[10]="aaa";
和char z[10]="aaa";
这两个语句有什么区别么?为什么后面的可以,前面的显示就是乱码?
谢谢大家了

#include <stdio.h>
int main(int argc, char *argv[])
{
int c;
char z[10]="aaa";

printf("%s",z);
getch();
return 0;
}

char z[10];
z[10]="aaa";
和char z[10]="aaa";
这两个语句有什么区别么?为什么后面的可以,前面的显示就是乱码?
谢谢大家了

定义的时候直接赋值是由首地址开始一个个往后赋值
但是
z[10]="aaa"; 确不是这样子的
z[10]是一个数组名字
你不能对z[10]赋值
只能对z[0]~z[9]操作啊

main()
{
//int c; //没有使用到,应该去掉
//int z[10]; //字符数组才可以存放字符串
//z[10]="aaa"; //字符串不能直接赋值,赋值需要用strcpy函数
char z[10]="aaa";//字符数组可以存放字符串
printf("%s",z);
getch();
}

int z[10];
定义成 char z[10];
是字符型的```

============================================
char z[10];
z[10]="aaa";
和char z[10]="aaa";
这两个语句有什么区别么?为什么后面的可以,前面的显示就是乱码?
谢谢大家了

char z[10];
z[10]=