c语言的结构体不能有函数 c语言的结构体能面向对象吗

c语言结构体能放函数吗

不能,只能放数据,想要放函数的话,搞一个指向函数的指针,把指针放进结构体里就可以了。

创新互联建站专注为客户提供全方位的互联网综合服务,包含不限于成都网站设计、做网站、甘谷网络推广、微信小程序、甘谷网络营销、甘谷企业策划、甘谷品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联建站为所有大学生创业者提供甘谷建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

在C语言中struct结构体里面 不能定义函数么?

c中不能,c++里可以在结构体内定义函数,用法和class定义类是一样的,说穿了struct 和 class用法相同,但要注意的一点是,struct默认的是public类型,而class默认的是private类型的

结构体里是不是不能定义函数

结构体里是不能定义函数的。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。结构体的特点和数组主要有两点不同:

1、结构体可以在一个结构中声明不同的数据类型。

2、相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型(而结构体是),数组名称是常量指针,所以不可以做为左值进行运算,所以数组之间就不能通过数组名称相互复制了,即使数据类型和数组大小完全相同。

扩展资料:

结构体作用:

结构体和其他类型基础数据类型一样,例如int类型,char类型 只不过结构体可以做成你想要的数据类型。以方便日后的使用。

在实际项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。由于C语言内部程序比较简单,研发人员通常使用结构体创造新的“属性”,其目的是简化运算。

结构体在函数中的作用不是简便,其最主要的作用就是封装。封装的好处就是可以再次利用。让使用者不必关心这个是什么,只要根据定义使用就可以了。

参考资料来源:百度百科-结构体

参考资料来源:百度百科-c++结构体

谁能给我讲讲c的结构体啊

结构体定义

结构体(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;

coutpt.xendlpt.yendl;  

 return EXIT_SUCCESS;  

 }

结构体的一些性质和作用:

结构体和其他类型基础数据类型一样,例如int类型,char类型 只不过结构体可以做成你想要的数据类型。以方便日后的使用。 在项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。 结构体在函数中的作用不是简便,其最主要的作用就是封装。封装的好处就是可以再次利用。让使用者不必关心这个是什么,只要根据定义使用就可以了。

上面都是概念性的问题,可以这么理解:一个结构体就是一个变量,.就像 int i;一样。int 变量类型, i是变量名。比喻如果有结构体定义如下:

struct student

{int num;

char name[20];

char sex;

}zhangsan,lisi;

表示定义了: student zhangsan;(类似如 int i;)

student zhangsan;(类似如 int j;)

当然它和变量有不一样的地方,不然直接也叫变量算了!!!!!

可以赋值 zhangsan.name="ZhangSan";

lisi.sex="MEN";等

c++中结构体可以定义一个函数么

c++中结构体可以定义一个函数

C中的结构体和C++中结构体的不同之处:在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数。

C++中的结构体和类的异同:

一、相同之处:结构体中可以包含函数;也可以定义public、private、protected数据成员;定义了结构体之后,可以用结构体名来创建对象。但C中的结构体不允许有函数;也就是说在C++当中,结构体中可以有成员变量,可以有成员函数,可以从别的类继承,也可以被别的类继承,可以有虚函数。

二、不同之处:结构体定义中默认情况下的成员是public,而类定义中的默认情况下的成员是private的。类中的非static成员函数有this指针,类的关键字class能作为template模板的关键字

即template

class

A{};

而struct不可以。

实际上,C中的结构体只涉及到数据结构,而不涉及到算法,也就是说在C中数据结构和算法是分离的,而到C++中一类或者一个结构体可以包含函数(这个函数在C++我们通常中称为成员函数),C++中的结构体和类体现了数据结构和算法的结合。

C语言中,结构体的成员可不可以是含参数的函数

当然可以,比如说要自己初始化结构体中的变量用到的set()函数,可以有参数;


本文标题:c语言的结构体不能有函数 c语言的结构体能面向对象吗
文章转载:http://myzitong.com/article/dossjcg.html