C 的結構體和函式

2021-07-31 14:53:13 字數 1075 閱讀 8978

寫在前面:

開始正文之前我需要簡單介紹一下自己以及這個系列部落格的目的。筆者是一名在讀的軟體工程的研究生(2023年)一直在自學演算法和語言,寫部落格最初的原因就是看了劉未鵬的《暗時間》,這個系列部落格是為了讓同樣自學的人少走點彎路加快建立乙個屬於自己的語言體系。

為了了解結構體,我們就來猜一下它是如何來的或者說我們為什麼需要結構體——現實世界的任何問題都可以用數字來描述,為了讓它能讀懂這些問題我們自然就需要把這些數字儲存起來,乙個數就可以了為什麼還就出現了8中基本資料型別呢?這是考慮到計算機記憶體的原因,乙個一位數字和乙個很多位的數字當然占用的記憶體大小不一樣,我們不能因為個列就把所有的數都在計算機裡開闢乙個很大的記憶體去儲存它,於是就區分為int等,那為什麼就是佔4個位元組的int呢?因為int能處理我們絕大數的問題。再來看bool型,因為我們經常要用到邏輯判斷(問一下這是真的嗎?)所以後來這個才被列為基本資料型別之一。再來看陣列,我們假設有兩個數字要處理,那乙個叫x乙個叫y就可以了,但如果我們要處理100個相同型別的數字,讓你乙個乙個去宣告定義初始化你估計還能接受,那一萬個呢?所以有了陣列通過下標來訪問相同型別的數字(元素)。那麼我們來看結構體,如果要用一些數字來描述你,顯然要有名字,身高等不同的資料型別,而且我們希望只要知道你的名字(或者其他資訊)我們就能知道你所有的資訊,顯然我們就搞出來乙個叫結構體的東西來儲存組合在一起的不同型別的資料。

扯了這麼多其實只是為了讓自學的小夥伴有一種水到渠成的感覺。

下面我們來專注於語言本身。

//結構體

#include#includeusing namespace std;

struct a ;

struct b ;

a btoa(b b); //宇宙無敵怪異的函式宣告,其實我們就是想要乙個函式(或者說黑匣子)

//輸入時名字叫b的b型別時返回(或者說得到)乙個a型別。

int main();//為了專注於語言本身我們直接初始化b

a a;//是否感覺這種寫法很熟悉,類似於int a對吧,就是宣告了乙個叫做a的a型別的量。

a=btoa(b);//呼叫函式

cout << a.distance <

結構體和函式

main.c c語言學習 include void change int value 定義乙個結構體型別 struct person void change2 struct person value void change3 struct person p int main int argc,con...

C 結構體和類的成員函式

1 使用結構體成員變數 還是 的區別?一般的結構體成員變數訪問用 即可,只用結構體指標訪問結構體成員才使用 include includeusing namespace std struct books int main 2 類成員函式可以在類內部宣告和定義,也可以在類內部宣告類外部使用範圍解析運算...

C結構體 C 結構體 和 C 類的區別

c結構體 c 結構體基本相同,c 類主要是方法的實現。結構體是資料型別的集合 類是資料型別加方法的集合,基本如此,更注重方法。1.c的結構體和c 結構體的區別 1 c的結構體內不允許有函式存在,c 允許有內部成員函式,且允許該函式是虛函式。所以c的結構體是沒有建構函式 析構函式 和this指標的。2...