c語言的結構體不能有函數(shù) c語言的結構體能面向對象嗎

c語言結構體能放函數(shù)嗎

不能,只能放數(shù)據(jù),想要放函數(shù)的話,搞一個指向函數(shù)的指針,把指針放進結構體里就可以了。

創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網綜合服務,包含不限于成都網站設計、做網站、甘谷網絡推廣、微信小程序、甘谷網絡營銷、甘谷企業(yè)策劃、甘谷品牌公關、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務,您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學生創(chuàng)業(yè)者提供甘谷建站搭建服務,24小時服務熱線:18982081108,官方網址:muchs.cn

在C語言中struct結構體里面 不能定義函數(shù)么?

c中不能,c++里可以在結構體內定義函數(shù),用法和class定義類是一樣的,說穿了struct 和 class用法相同,但要注意的一點是,struct默認的是public類型,而class默認的是private類型的

結構體里是不是不能定義函數(shù)

結構體里是不能定義函數(shù)的。結構體是由一系列具有相同類型或不同類型的數(shù)據(jù)構成的數(shù)據(jù)集合。結構體的特點和數(shù)組主要有兩點不同:

1、結構體可以在一個結構中聲明不同的數(shù)據(jù)類型。

2、相同結構的結構體變量是可以相互賦值的,而數(shù)組是做不到的,因為數(shù)組是單一數(shù)據(jù)類型的數(shù)據(jù)集合,它本身不是數(shù)據(jù)類型(而結構體是),數(shù)組名稱是常量指針,所以不可以做為左值進行運算,所以數(shù)組之間就不能通過數(shù)組名稱相互復制了,即使數(shù)據(jù)類型和數(shù)組大小完全相同。

擴展資料:

結構體作用:

結構體和其他類型基礎數(shù)據(jù)類型一樣,例如int類型,char類型 只不過結構體可以做成你想要的數(shù)據(jù)類型。以方便日后的使用。

在實際項目中,結構體是大量存在的。研發(fā)人員常使用結構體來封裝一些屬性來組成新的類型。由于C語言內部程序比較簡單,研發(fā)人員通常使用結構體創(chuàng)造新的“屬性”,其目的是簡化運算。

結構體在函數(shù)中的作用不是簡便,其最主要的作用就是封裝。封裝的好處就是可以再次利用。讓使用者不必關心這個是什么,只要根據(jù)定義使用就可以了。

參考資料來源:百度百科-結構體

參考資料來源:百度百科-c++結構體

誰能給我講講c的結構體啊

結構體定義

結構體(struct)是由一系列具有相同類型或不同類型的數(shù)據(jù)構成的數(shù)據(jù)集合,也叫結構。

結構體作用

結構體和其他類型基礎數(shù)據(jù)類型一樣,例如int類型,char類型 只不過結構體可以做成你想要的數(shù)據(jù)類型。以方便日后的使用。 在實際項目中,結構體是大量存在的。研發(fā)人員常使用結構體來封裝一些屬性來組成新的類型。 結構體在函數(shù)中的作用不是簡便,其最主要的作用就是封裝。封裝的好處就是可以再次利用。讓使用者不必關心這個是什么,只要根據(jù)定義使用就可以了。

結構體的大小與內存對齊

結構體的大小不是結構體元素單純相加就行的,因為我們現(xiàn)在主流的計算機使用的都是32Bit字長的CPU,對這類型的CPU取4個字節(jié)的數(shù)要比取一個字節(jié)要高效,也更方便。所以在結構體中每個成員的首地址都是4的整數(shù)倍的話,取數(shù)據(jù)元素是就會相對更高效,這就是內存對齊的由來。每個特定平臺上的編譯器都有自己的默認“對齊系數(shù)”(也叫對齊模數(shù))。程序員可以通過預編譯命令#pragma pack(n),n=1,2,4,8,16來改變這一系數(shù),其中的n就是你要指定的“對齊系數(shù)”。 規(guī)則: 1、數(shù)據(jù)成員對齊規(guī)則:結構(struct)(或聯(lián)合(union))的數(shù)據(jù)成員,第一個數(shù)據(jù)成員放在offset為0的地方,以后每個數(shù)據(jù)成員的對齊按照#pragma pack指定的數(shù)值和這個數(shù)據(jù)成員自身長度中,比較小的那個進行。 2、結構(或聯(lián)合)的整體對齊規(guī)則:在數(shù)據(jù)成員完成各自對齊之后,結構(或聯(lián)合)本身也要進行對齊,對齊將按照#pragma pack指定的數(shù)值和結構(或聯(lián)合)最大數(shù)據(jù)成員長度中,比較小的那個進行。 3、結合1、2顆推斷:當#pragma pack的n值等于或超過所有數(shù)據(jù)成員長度的時候,這個n值的大小將不產生任何效果。

C++中的結構體

在C語言中,可以定義結構體類型,將多個相關的變量包裝成為一個整體使用。在結構體中的變量,可以是相同、部分相同,或完全不同的數(shù)據(jù)類型。在C語言中,結構體不能包含函數(shù)。在面向對象的程序設計中,對象具有狀態(tài)(屬性)和行為,狀態(tài)保存在成員變量中,行為通過成員方法(函數(shù))來實現(xiàn)。C語言中的結構體只能描述一個對象的狀態(tài),不能描述一個對象的行為。在C++中,考慮到C語言到C++語言過渡的連續(xù)性,對結構體進行了擴展,C++的結構體可以包含函數(shù),這樣,C++的結構體也具有類的功能,與class不同的是,結構體包含的函數(shù)默認為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;  

 }

結構體的一些性質和作用:

結構體和其他類型基礎數(shù)據(jù)類型一樣,例如int類型,char類型 只不過結構體可以做成你想要的數(shù)據(jù)類型。以方便日后的使用。 在項目中,結構體是大量存在的。研發(fā)人員常使用結構體來封裝一些屬性來組成新的類型。 結構體在函數(shù)中的作用不是簡便,其最主要的作用就是封裝。封裝的好處就是可以再次利用。讓使用者不必關心這個是什么,只要根據(jù)定義使用就可以了。

上面都是概念性的問題,可以這么理解:一個結構體就是一個變量,.就像 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++中結構體可以定義一個函數(shù)么

c++中結構體可以定義一個函數(shù)

C中的結構體和C++中結構體的不同之處:在C中的結構體只能自定義數(shù)據(jù)類型,結構體中不允許有函數(shù),而C++中的結構體可以加入成員函數(shù)。

C++中的結構體和類的異同:

一、相同之處:結構體中可以包含函數(shù);也可以定義public、private、protected數(shù)據(jù)成員;定義了結構體之后,可以用結構體名來創(chuàng)建對象。但C中的結構體不允許有函數(shù);也就是說在C++當中,結構體中可以有成員變量,可以有成員函數(shù),可以從別的類繼承,也可以被別的類繼承,可以有虛函數(shù)。

二、不同之處:結構體定義中默認情況下的成員是public,而類定義中的默認情況下的成員是private的。類中的非static成員函數(shù)有this指針,類的關鍵字class能作為template模板的關鍵字

即template

class

A{};

而struct不可以。

實際上,C中的結構體只涉及到數(shù)據(jù)結構,而不涉及到算法,也就是說在C中數(shù)據(jù)結構和算法是分離的,而到C++中一類或者一個結構體可以包含函數(shù)(這個函數(shù)在C++我們通常中稱為成員函數(shù)),C++中的結構體和類體現(xiàn)了數(shù)據(jù)結構和算法的結合。

C語言中,結構體的成員可不可以是含參數(shù)的函數(shù)

當然可以,比如說要自己初始化結構體中的變量用到的set()函數(shù),可以有參數(shù);

當前標題:c語言的結構體不能有函數(shù) c語言的結構體能面向對象嗎
轉載來源:http://muchs.cn/article26/dossjcg.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網站、微信小程序網站設計、做網站品牌網站建設、網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

外貿網站制作