編程基礎,結構(Struct)

2021-02-19 同福編程
1. 介紹
1.1 介紹

前面我們學習了編程的入門課程,了解的程式語言的基本語法,知道程式語言的基本要素。

今天開始福哥開始給大家講編程的基礎知識,這個基礎知識是用來提高編程水平的知識,基礎知識每種程式語言的差異會比較大,所以福哥在講解某一種程式語言的某一特性的時候,會標明這種特性針對的是哪一種程式語言,只想學習某一種程式語言的童鞋可以有選擇的學習。

第一課是公共知識,所以就沒有標明是哪一種程式語言,這一課講的主題是結構(Struct),這是一個輕鬆的話題,了解結構可以幫助我們樹立一個框架性的概念,對編寫各種級別的項目會有一個基本概念。

2. 結構層級

結構層級指的是在編程領域,小到一個函數,大到一個解決方案,它們之間都是存在這一系列層級關係的,從大到小的順序是:

解決方案(Solution),針對一個大的需求給出的一整套解決方案,它可能是一個或多個項目工程組成

項目工程(Project),針對一個特定的領域的一個獨立的程序或庫,它可能是一個或多個模塊組成

模塊(Module),針對一個具體的解決一個特定功能的需求的對象模型,它可能是一個或多個對象組成

對象(Class),針對一個具體的實體對象的定義,它包含這個實體對象的屬性組和方法組

函數(Function),針對一個具體的行為的定義,它是實現這個行為得到具體邏輯

3. 數據結構

數據結構指的是包含若干屬性的一個 獨立的數據模型,在c語言裡可以使用struct定義數據結構,在c++語言裡可以使用class定義數據結構,在java語言裡也是使用class定義數據結構,在php語言裡除了可以使用class定義數據結構外,還可以使用php獨有的array來定義數據結構。

3.1 數據結構和變量

數據結構是一組變量的集合體,數據結構的實例可以作為普通變量傳遞給函數使用,數據結構比較變量的優勢有很多,諸如:

3.2 數據結構和對象

數據結構在沒有對象的c語言是用struct定義的,在c++和java、php等支持對象的語言裡和普通對象的區別就只有一條,就是作為數據結構的對象是沒有任何方法定義的,它只作為一組屬性的集合體存在。

4. 實體對象

實體對象(Entity)是設計模式裡的一個概念,這種設計模式倡導的是所有需要存儲的數據都要歸類到一個實體對象裡,存儲數據的只能是實體對象,讀取數據也只能從實體對象的屬性裡獲取,這是OOP編程思想的思維,是比較先進的設計思想。

4.1 c/c++示例

在c/c++裡,大家更加習慣使用struct這種數據結構語法定義實體對象

typedef struct T_TFUser {    int userId;    string userName;};

在c/c++裡的struct就是一個類型,我們可以通過這個struct聲明變量

4.2 java示例

在java裡,實體對象會被放入entity包下面,並且使用setter/getter為實體對象增加讀寫能力

@Datapublic class TFUser {    private Integer userId;    private String userName;}

在java裡的entity就是一個class,我們可以通過這個class聲明變量

4.3 php示例

在php裡,實體對象就是php的數組

$TFUser = array(    'userId'=>35,    'userName'=>"福哥");

4.4 python示例

在python裡,實體對象就是dict(字典)

TFUser = {    "userId":35,    "userName":"福哥"}

4.5 javascript示例

在javascript裡,實體對象就是object對象

var TFUser = {    userId: 0,    userName: "福哥"};

5. 總結

了解了結構層級,就知道一個網站,一個軟體背後有多少代碼了,就可以大概估算出一個需求的工作量了,培養這個經驗對於評估項目複雜度,評估項目周期,是非常有幫助的。

理解數據結構的意義,熟練使用實體對象,有助於幫助我們設計我們的程序代碼結構,在功能不斷更新迭代當中也不會變得混亂不堪。

免費看文章,自己學技術

每一篇文章都是福哥一個字一個字地敲出來的,都是福哥原創的。

每一篇文章都是經過了福哥的反覆驗證的,都是可以正常使用的。

相關焦點

  • struct和typedef struct
    >    };  分析:tagMyStruct稱為「tag」,即「標籤」,實際上是一個臨時名字,不論是否有typedefstruct 關鍵字和tagMyStruct一起,構成了這個結構類型,這個結構都存在。
  • C/C++編程筆記:C語言結構和C++結構之間的區別,又學到了嗎?
    struct默認為公共可見性和class默認為私有可見性。輸出:7使用struct關鍵字:在C語言中,我們需要使用struct來聲明一個struct變量。在C ++中,沒有必要使用struct。例如,讓Record有一個結構。
  • structflow結構處理能力匯總(乾貨)
    而structflow是該套件中進行晶體結構操作和文件轉換的一個十分簡單、易於使用的命令行工具。本文將系統性總結structflow目前所具有的功能,知曉這些功能將能夠幫助你更加輕鬆、高效地去應付DFT模擬中常見的結構處理工作。這些功能包括: 文件格式轉換、構建超胞、固定原子、刪除原子、移動原子、添加真空層、重定義晶格基矢、剖分表面、構建表面複合異質結以及構建納米管等功能。
  • 給小學六年級的簡易模板元「編程」入門-基礎編程
    前言,本系列是一個模板「編程」入門類文章,注意是編程,不涉及模板的基礎語法和泛型相關的內容。
  • python系列(struct-數據結構之二進位數據結構)
    函數與結構類一組模塊級函數可用於處理結構化值以及Struct類。格式說明符從其字符串格式轉換為編譯表示形式,類似於處理正則表達式的方式。struct_pack.py import structimport binasciivalues = (1, 'ab'.encode('utf-8'), 2.7)s = struct.Struct
  • C語言結構體(Struct)
    但在實際的編程過程中,我們往往還需要一組類型不同的數據,例如對於學生信息登記表,姓名為字符串,學號為整數,年齡為整數,所在的學習小組為字符,成績為小數,因為數據類型不同,顯然不能用一個數組來存放。在C語言中,可以使用結構體(Struct)來存放一組不同類型的數據。
  • LabVIEW編程基礎:以實例學編程之循環結構
    LabVIEW編程基礎:以實例學編程之條件結構精講,LabVIEW編程基礎:以實例學編程之順序結構)中分別講了順序結構與條件結構的編程方法,下面通過具體例子演示循環結構的編程使用方法。循環結構框架特點對於循環結構,同C語言類似,LabVIEW中提供了兩種實現方式,分別為for循環和while循環,其框架樣式分別如下圖所示:上圖中,左邊為for循環框,右邊為while循環框,這兩種循環的特點是:1.
  • C/C++編程筆記:深入解析C語言結構!帶你看懂C語言代碼
    如何建立結構?'struct'關鍵字用於創建結構。以下是一個示例:注意:在C ++中,在聲明變量之前,struct關鍵字是可選的。在C中,它是強制性的。如何初始化結構成員?結構成員不能使用聲明進行初始化。例如,以下C程序編譯失敗。
  • C/C+語言struct深層探索
    1. struct的巨大作用  面對一個人的大型C/C++程序時,只看其對struct的使用情況我們就可以對其編寫者的編程經驗進行評估。因為一個大型的C/C++程序,勢必要涉及一些(甚至大量)進行數據組合的結構體,這些結構體可以將原本意義屬於一個整體的數據組合在一起。從某種程度上來說,會不會用struct,怎樣用struct是區別一個開發人員是否具備豐富開發經歷的標誌。
  • C/C+編程筆記:C語言和C+的 struct 對比!區別在哪?
    C++語言將struct當成類來處理的,所以C++的struct可以包含C++類的所有東西,例如構造函數,析構函數,友元等,C++的struct和C++類唯一不同就是 而C語言struct不是類,不可以有函數,也不能使用類的特徵例如public等關鍵字 ,也不可以有static關鍵字。 2. C++ struct裡面成員初始化的形式和類是相同的,不可以直接初始化,就是不可以定義成員的時候同時初始化。C語言 struct中間的某個類型(例如int)也不可以直接初始化。
  • 【C語言經典編程技術】C語言中union與struct的區別及sizeof的計算方式
    C語言不久的朋友對此非常困惑,下面我將簡單談一下自己對union與struct之間的區別聯 合(union) 1. union {   int i;   struct   {  char first;  char second; }half;  }number;2.結構的定義定義一個結構的一般形式為: struct 結構名 { 成員表列 };成員表由若干個成員組成
  • LabVIEW編程基礎:以實例學編程之順序結構
    LabVIEW又稱為G語言,簡單易學、形象直觀,採用圖形化的編程方式,是專為測試、測量和控制應用而設計的系統工程軟體。同C語言編程一樣,LabVIEW中也有對應的三大程序執行框架結構,分別為順序結構、循環結構和選擇結構。
  • C語言結構體用法很多,坑也很多
    本文主要說的是C語言中的結構體,結構體是C語言中重要的一部分內容,也是C語言中常用的一種數據結構。在C語言中,結構體(struct)指的是一種數據結構,是C語言中複合數據類型(aggregate data type)的一類。結構體可以被聲明為變量、指針或數組等,用以實現較複雜的數據結構。
  • MATLAB中struct的創建與訪問
    在MATLAB中,創建結構數組使用的函數是struct,它根據你給定的欄位名稱和對應的數據,建立結構數組。其語法格式為:struct(『欄位名稱1』,』欄位1的取值』,『欄位名稱2』,』欄位2的取值』,....)例如,s=struct('type',{'big','little'},...
  • C語言結構體(struct)詳解
    float height;  5. };  複製代碼第二種:附加該結構體類型的「結構體變量」的初始化的結構體定義1. //直接帶變量名Huqinwei  2. struct stuff{  3.
  • Linux伺服器編程簡介
    Linux伺服器編程的特點是異步高並發,代碼不能阻塞、不能休眠,以提高伺服器的並發效率。給nginx寫自定義的模塊,就是典型的Linux伺服器編程。nginx-rtmp-module就是一個開源的nginx模塊,它為nginx添加了rtmp協議的支持。
  • C語言結構體(struct)常見使用方法
    要分清結構體變量和結構體內部成員變量的概念。}, {46,99,77,0}}; 結構體嵌套:結構體嵌套其實沒有太意外的東西,只要遵循一定規律即可:[cpp] struct
  • C/C+編程筆記:C語言結構和C+結構之間的區別,又學到了嗎?
    今天我們來看看:C語言結構和C++結構之間的區別 首先,在我們C ++中,struct和class完全相同,除了struct默認為公共可見性和class默認為私有可見性。
  • 深入了解 Julia 中的數據結構
    該結構中的關鍵組件是類型,更具體地說,是數據類型。譯註:多分派(multiple dispatch),又稱多重派發,是某些程式語言的一種特性,函數或者方法的分配取決於運行時參數的對象類型。它是對方法調用只能由調用者決定的單分派的擴展。數據類型是計算機編程的基礎。任何編程工作都涉及操作、移動和處理基本數據類型。
  • C語言結構體(struct)最全的講解(萬字乾貨)
    結構體的定義結構體(struct)是由一系列具有相同類型或不同類型的數據構成的數據集合,也叫結構。結構體和其他類型基礎數據類型一樣,例如int類型,char類型只不過結構體可以做成你想要的數據類型。struct 結構體名(也就是可選標記名){    成員變量;};//使用分號表示定義結束。