#include "stdio.h"
int main(void)
{
char s[4];
s="tom";
getch();
return 0;
}
编译错误:
错误 test.c 5: 需要逻辑0或非0在 main 函数中
#include "stdio.h"
int main(void)
{
char s[4]="tom";
getch();
return 0;
}
成功!
分析:char s[4]="tom",只能用于字符数组的初始化赋值。初始化赋值时,由于未对字符数组分配地址,但是字符串"tom"已经有地址,在初始化的时候将"tom"的地址赋给字符数组s。
在初始化之后赋值,char s[4];s="tom";由于s已经分配来了地址,s表示它的地址值,"tom"返回的是他的地址值,地址=地址?当然不可以。
可以改为:
#include "stdio.h"
#include "string.h"
int main(void)
{
char s[4];
strcpy(s,"tom");
getch();
return 0;
}
成功!
#include "stdio.h"
int main(void)
{
char *s;
s="tom";
getch();
return 0;
}
成功!