c语言字符串赋值

char *p="asdf";能运行
定义一个字符指针,并用它指向常量字符串"asdf"的首地址

char *p;p="asdf"; 能运行
定义一个字符指针,并用它指向常量字符串"asdf"的首地址

char a[]="asdf"; 能运行
定义一个字符数组,并用"asdf"来初始化,a中共有5个成员:'a','s','d','f',''

char a[10];a[]="asdf"; 不能运行
a[]即是指数组a的首成员,也就是*a或者a[0],a是一个字符数组,其成员都为字符,用字符串"asdf"给字符赋值,错误

char a[10]; a="asdf"; 不能运行
a是数组名,也就是首成员地址,不能用"asdf"进行赋值

char a[10]; &a="asdf";不能运行
a是数组名,也就是首成员地址,&a是地址的地址,也不能用"asdf"进行赋值

char a[10]; &a[0]="asdf";不能运行
&a[0]就是首成员a[0]地址,不能用"asdf"进行赋值

C语言字符串赋值必须用 strcpy()函数。

原文地址:https://www.cnblogs.com/zhengah/p/4685996.html