不能,只能放數據,想要放函數的話,搞一個指向函數的指針,把指針放進結構體里就可以了。
成都創新互聯成立以來不斷整合自身及行業資源、不斷突破觀念以使企業策略得到完善和成熟,建立了一套“以技術為基點,以客戶需求中心、市場為導向”的快速反應體系。對公司的主營項目,如中高端企業網站企劃 / 設計、行業 / 企業門戶設計推廣、行業門戶平臺運營、成都App定制開發、手機網站制作、微信網站制作、軟件開發、成都多線機房等實行標準化操作,讓客戶可以直觀的預知到從成都創新互聯可以獲得的服務效果。
結構體定義
結構體(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++的結構體可以包含函數,這樣,C++的結構體也具有類的功能,與class不同的是,結構體包含的函數默認為public,而不是private
結構體的一些性質和作用:
結構體和其他類型基礎數據類型一樣,例如int類型,char類型
只不過結構體可以做成你想要的數據類型。以方便日后的使用。
在項目中,結構體是大量存在的。研發人員常使用結構體來封裝一些屬性來組成新的類型。
結構體在函數中的作用不是簡便,其最主要的作用就是封裝。封裝的好處就是可以再次利用。讓使用者不必關心這個是什么,只要根據定義使用就可以了。
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中不能,c++里可以在結構體內定義函數,用法和class定義類是一樣的,說穿了struct 和 class用法相同,但要注意的一點是,struct默認的是public類型,而class默認的是private類型的
本文題目:c語言的結構體包含函數嗎 c語言結構體中包含結構體
鏈接分享:http://m.newbst.com/article28/docpojp.html
成都網站建設公司_創新互聯,為您提供ChatGPT、商城網站、微信公眾號、營銷型網站建設、網站收錄、企業網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯