欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > C语言学习日记————结构体

C语言学习日记————结构体

2024/10/25 22:25:06 来源:https://blog.csdn.net/weixin_66436813/article/details/139426339  浏览:    关键词:C语言学习日记————结构体

结构体是一种数据类型-----构造类型

struct 结构体名
{
   成员列表
};

1、struct                                      //结构体 类型 关键字
2、结构体名                                //表明这个结构体类型的名称
3、成员列表                                //来描述结构体类型中具体的一些数据
                                                    //成员变量
       
       
注意结束的}后面要有一个分号!!
声明结构体类型
struct studet
{
    char name[20];
    char sex;
    int sno;
    float core;
}

int main(void)
{
    int a;
    //初始化方式:按照成员列表的对应方式依次初始化
         struct student s = {“xiaoming”,0,1110,99.5};
         
         结构体变量的引用:
         方法:
         结构体变量名.成员名       (这个.是结构体成员运算符)
         eg:s.name   //访问s中的name
   //打印
    printf("name = %s\n",s.name);   //访问s中的name
}


结构体变量不能整体的输入值
 eg:  scanf(“%d”,&s.sno);     因为.运算符的优先级高于&。所以不需要加括号
 
 注意: 在输入字符型数据的时候结尾的回车哟啊通过getchar()来吃掉它
 eg:  scanf(“%s”,&s.name);
       getchar();
       scanf(“%c”,&s.sex);

定义的方式:
1、 先声明变量 再定义变量   
   //如上面的例子
   但不能再main中声明会出现错误
2、 声明类型的同时定义变量:
   struct student
   {
       ...
   }s;
   
3、 声明类型的同时定义变量 但是省略结构体的名
  suruct 
  {
      。。。
  }s;
  
  
  
  0.两个结构体运算符:
  
  .                //成员运算符
  方法:  
      结构体变量名 . 成员变量名
  
  ->             // 指向结构体成员运算符
  方法:
       结构体类型的指针 -> 成员变量名
  
  同一类型的结构体变量之间是可以相互赋值的
  通过结构体类ing的指针 也可以访问到结构体成员
  结构体类型既可以做函数形参,也可以做为返回值
  
  
  qsort(起始地址,元素个数,单个元素大小,排序规则)
  
  
 
 考点:
   结构体实际的大小并不等于结构体里数据类型大小的简单相加
 
 !注意!
   计算机存在效率问题
 
 
 内存对齐:
  结构体对齐规则:    //内存地址的对齐
  结构体对齐:
  1、在32位的平台上,默认都是按照4字节对齐的。
     在64位的平台上,默认都是按照8字节对齐的
  2、对于成员变量,
     各自在自己的自然边界上对齐。
      char --1字节
      short--2字节
      int  --4字节
  
  3、如果 成员变量中有比4字节大。此时整个结构体按照4字节对齐。
  4、如果 成员变量中没有比4字节大的,此时整个结构体按照最大的那个成员对齐。   

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com