结构体成员是C类型的字符数组表示字符串时
c语言中没有字符串类型,只能使用字符数组表示字符串。
当定义结构体时,成员是字符数组时,在外部给该成员赋值,不能使用
结构体把变量名.成员名 = "ssss";
上述表达式是错误的,定义成员是数组,直接使用成员名表示的是该数组的首地址,赋值时只能给他地址,不能给他常量。
直接打印输出结构体成员数组名,输出的是地址。
可以使用字符串函数 strcpy 给字符数组(相当于字符串)复制一个字符串。
struct {
char *name,address[20];
int age;
}student4;//使用这种直接定义结构体变量,不能继续定义其他的结构体变量
// student1.name[20] = "www"; 结构体成员为数组时,使用结构体变量.成员名 访问的是数组名(数组的首地址),它是一个地址,
// 不能将常量赋值给他,对结构体数组赋值可使用strcpy函数
//将strcpy(stringa, stringb) 将stringb的首地址赋值给stringa的首地址
strcpy(student1.address,"zhe shi addr");
student1.age = 10;
// 给字符数组赋值只能赋值单个字符
student1.address[20] = 'a';
printf("%d\n",student1.age);
printf("%p\n",&student4);
printf("%s\n",student1.address);
printf("%c\n",student1.address[20]);
结构体成员是指针时
直接打印输出结构体成员指针,输出的是指针指向地址的内容。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)