c语言结构能放函数吗 c语言结构能放函数吗为什么

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

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

创新互联建站从2013年开始,是专业互联网技术服务公司,拥有项目网站设计制作、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元犍为做网站,已为上家服务,为犍为各地企业和个人服务,联系电话:18980820575

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语言的结构体是一组数据的组合,并不是简单的单一类型。所以在查找和输出的时候,均不能直接操作,而是要进行变通。

1

查找。

对于以某一项为关键字进行查找时,比如在结构体中有int型的成员a,要查找a为100的结构体变量,这时需要遍历每个结构体(数组、链表、或者其它任意形式),对每个元素的成员a值进行比较,符合的则表示查找成功。

对于结构体中元素较多,同时要对整个结构体每个元素都匹配才算查找到的特殊情况,可以使用memcmp的方式,整体进行比较,以减少代码量。不过这种情况较为少见,不过多描述。

2

输出。

对于结构体的输出,其实就是对其每一项,或者若干项成员变量的输出。

所以可以使用基本的输出函数,对每一项单独输出,输出中为了方便阅读,可以加一些说明文字。

如果对结构体输出有多处调用的需求,可以在将该功能封装为函数,供各个需要的函数调用。这样的好处是,当结构体的成员出现变化,或者结构体输出要求更改时,修改一处代码即可完成所有的输出修改,实现易于维护的效果。

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

不可以的,结构体一般都只有数据成员,而没有函数成员。也就是像int、double这样的数据类型,函数需要单独定义。如果必需使用函数,就得用C++中的类概念了

C语言中结构体重可以定义函数吗?

C中不行,不过你可以定义一个

函数指针

变量

struct

test

{

int

i;

void

(*pfun)(struct

test*,

int);

}

void

set(struct

test*

t,

int

n)

{

t-

i

=

n;

}

void

f()

{

test

t;

t-

pfun

=

set;

t-

pfun(t,

2);

}

求叫高手:C语言中结构和类可不可以做函数类型?

如果类作为函数返回类型的话 要求类必须存在引用构造函数和复制构造函数,

比如 如果你用a类作函数返回值就必须要有

class a

{

a(a inp);

a(a inp);

}

这样当你用return的时候 才能把你的返回值复制给临时变量

结构的负值是按照顺序进行数据拷贝的 当然也可以咯,

不过要注意的是如果结构里有指针的话要加以注意,避免进行野指针的传递


文章名称:c语言结构能放函数吗 c语言结构能放函数吗为什么
URL标题:http://scyanting.com/article/dooidsj.html