【吴从周课程】结构体

结构体变量名不能像数组直接当做地址使用,
memset(&stgirl,0,sizeof(stgirl)); //给结构体变量加&获得地址
这里的sizeof中可以是结构体类型stgirl 也可是struct st_girl

结构体的内存不小于成员变量内存之和
(各个变量在内存中的存储有空隙,使用内存对齐技术后可以等于)

结构指针是指向结构体的指针,可以利用结构指针访问成员变量:
struct st_girl stgirl,*pst=&stgirl;
stgirl.变量 //直接用结构体变量名访问
pst->变量 //这种比较形象,用的多
(*pst).变量 //这种用的比较少

指针的传参问题:
指针在函数中的传参问题:
示例1.

//int *a 表示传递的是一个指向b的指针变量或p的地址
void arr(int *a)
{
 *a=*a+3;
}
int main()
{
int b=3;
arr(&b);
printf("%d",b);
return 0;
}

示例2.

//struct st_girl *pst 表示传递的是一个指向st_girl的指针变量或结构体变量的地址
setValue(&stgirl);

void setValue(struct st_girl *pst)
{
pst->age=19;
strcpy(pst->name,"武则天");
printf("%s  %d",pst->name,pst->age);
}

两个函数
memcpy函数:
struct st_girl stgirl1,stgirl2;
stgirl.age=19;
strcpy(stgirl1.name,“武则天”);
memcpy(&stgirl2,&stgirl1,sizeof(struct st_girl));
直接复制整个stgirl1给stgirl2

bzero函数:
bzero(地址,sizeof(数据类型));
bzero和memset一样用于清0
实际开发中,由于结构体会定义到头文件中去,因此基本上不会在定义后直接定义变量。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

农民真快落

我琢磨着也没人给我打赏呀。。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值