结构体成员——数组或指针

结构体成员是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]);

结构体成员是指针

直接打印输出结构体成员指针,输出的是指针指向地址的内容。

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值