c语言什么叫结构体 C语言结构体中的 . 和 -> 是什么意思

www.zhiqu.org     时间: 2024-06-16
结构体定义
  结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。
结构体作用
  结构体和其他类型基础数据类型一样,例如int类型,char类型 只不过结构体可以做成你想要的数据类型。以方便日后的使用。   
在实际项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。
  结构体在函数中的作用不是简便,其最主要的作用就是封装。封装的好处就是可以再次利用。让使用者不必关心这个是什么,只要根据定义使用就可以了。
结构体的大小与内存对齐
  结构体的大小不是结构体元素单纯相加就行的,因为我们现在主流的计算机使用的都是32Bit字长的CPU,对这类型的CPU取4个字节的数要比取一个字节要高效,也更方便。所以在结构体中每个成员的首地址都是4的整数倍的话,取数据元素是就会相对更高效,这就是内存对齐的由来。每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。
程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数,其中的n就是你要指定的“对齐系数”。
  规则:
  1、数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员的对齐按照#pragma pack指定的数值和这个数据成员自身长度中,比较小的那个进行。
  2、结构(或联合)的整体对齐规则:在数据成员完成各自对齐之后,结构(或联合)本身也要进行对齐,对齐将按照#pragma pack指定的数值和结构(或联合)最大数据成员长度中,比较小的那个进行。
  3、结合1、2颗推断:当#pragma pack的n值等于或超过所有数据成员长度的时候,这个n值的大小将不产生任何效果。
C++中的结构体
  在C语言中,可以定义结构体类型,将多个相关的变量包装成为一个整体使用。在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型。在C语言中,结构体不能包含函数。在面向对象的程序设计中,对象具有状态(属性)和行为,状态保存在成员变量中,行为通过成员方法(函数)来实现。C语言中的结构体只能描述一个对象的状态,不能描述一个对象的行为。在C++中,考虑到C语言到C++语言过渡的连续性,对结构体进行了扩展,C++的结构体可以包含函数,这样,C++的结构体也具有类的功能,与class不同的是,结构体包含的函数默认为public,而不是private。
  C++控制台输出例子:
  #include <cstdlib>
  #include <iostream>
  //定义结构体
  struct point
  {   //包含两个变量成员
  int x;
  int y;   };
  using namespace std;
  int main(int argc, char *argv[])
  {
struct point pt;
  pt.x=1;
  pt.y=2;
  cout<<pt.x<<endl<<pt.y<<endl;
  return EXIT_SUCCESS;
  }
C++中的结构体与类的区别
  类与结构体在C++中只有两点区别,除此这外无任何区别。   (1)class中默认的成员访问权限是private的,而struct中则是public的。   (2)从class继承默认是private继承,而从struct继承默认是public继承。

~


#郎徐昭# 请问下C语言中的结构体有什么用? -
(13642311143): C语言中的结构体可以定义一些复杂数据类型,把一些有内在联系的不同变量放在一起封装成一个整体,这就是结构体. 例如:以学生为例,学生存在学号,姓名,性别,班级等.此时你可以顶一个结构体,将这些学生信息封装到一个结构体中...

#郎徐昭# 什么是结构体类型?C语言中结构体类型占几个字节? -
(13642311143): 结构体类型就是一种数据类型撒,譬如定义一个整型变量int a;意思是a的数据类型是整形的,定义一个结构体变量b,他的数据类型就是结构体类型的!!

#郎徐昭# C语言的结构体及指针 -
(13642311143): int 是一种 数据类型 结构体 是一种 数据类型 int 是C语言预先定义好的 数据类型 结构体 是用现有的数据类型组合起来的 数据类型 我需要一个变量来存储整数, C语言已经有int这样的数据类型,我就直接声明一个int型变量:int a; 再把数据存进...

#郎徐昭# c语言结构体 -
(13642311143): struct s是一个结构体数据类型,简单来说相当于int, float,x是一个结构体变量struct s{ }; 是结构体的声明struct s x;是结构体变量的声明...多看书.基础要扎实

#郎徐昭# c++中结构体是什么?有什么用? -
(13642311143): 在C语言中,可以定义结构体类型,将多个相关的变量包装成为一个整体使用.在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型.在C语言中,结构体不能包含函数.在面向对象的程序设计中,对象具有状态(属性)和行为...

#郎徐昭# c语言中什么是结构体和共同体啊!不理解啊! -
(13642311143): 结构体,就是一家人,可以有一个也可以有很多人,每个都有各自身份,相互之间独立,只不过是一家子,当任何一个整容了(改变值),其他都不受影响 共用体,是一个人,在不同场合有不同身份,但本质上还是这一个人.在家里是丈夫父亲儿子,出去是邻居,上班是同事领导下属,但实际上是一个人,如果体重增加了(改变了值),每一个都会跟着变

#郎徐昭# c语言 结构体 -
(13642311143): 你上面的程序没有错#include int main(){ struct stu { int sum; char name[20]; int age; int xb; }a[5]; \*定义5个人*...

#郎徐昭# C语言编程结构体
(13642311143): 1. /*定义结构体类型*/ struct student {int num;//学号 char name[20];//姓名 char sex;//性别 int age;//年龄 char class[20];//班级 char phone[20];//电话 char addr[20];//住址}; 1.先定义结构体类型: struct student//结构体名 {int num;//学号 ...

#郎徐昭# C语言的结构体的具体作用是?C的主要用途?
(13642311143): C语言的结构体是可以把定义的变量多元化,分类化! C是一种高级语言! 用他编写程序语法结构要求不是很严,同时程序执行率高!

#郎徐昭# C语言里面结构体与共同体是啥意思具体指的是什么
(13642311143): 结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构. 在C语言中,可以定义结构体类型,将多个相关的变量包装成为一个整体使用.在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型.在...