第六篇:C語言中結構體與文件操作相關知識點梳理

2020-12-06 向陽花開滿山紅

前面總結過,C語言中的基本數據類型有四種,分別是整型、浮點型和字符型;後面又講到可以保存字符串的字符數組。但這遠遠不夠實際應用的需要。

01問題引入

問題一:基本數據類型無法滿足應用需要

比如:我們要保存一個學生的資料,包括:學號、姓名、年齡、地址等信息。注意:這個學生信息是一個整體,用前面學到的基本數據類型是無法實現的。

有沒有一種學生的數據類型可以使用?系統沒有定義,就只能自行設計了。這就是本文要總結的第一個核心知識點:結構體。

在C語言中結構體是對數據類型的無限擴展。程式設計師可以根據需要定義各種各樣的數據類型,即:結構體。

問題二:數據無法永久保存

前面我們編寫運行的所有C語言程序,或多或少都會輸入一些數據。但是,當關閉程序後,這些數據就沒有了,下次運行還需要輸入同樣的數據。有沒有可以永久保存數據的方式?

有,一種是通過資料庫,另外一種就是通過文件永久保存數據。文件操作將是本文要總結的第二個核心知識點,將程序中的數據永久保存到磁碟上,方便下次讀寫操作。

02結構體

結構體也是二級考綱中的內容。同時,結構體與數組可以構成結構體數組,與指針可以組成結構體指針。在知識難點上又上了一個檔次,需要將前面所學的知識融合在一起理解並綜合應用。需要同學們強化練習,對每一個知識點都能透徹理解。

結構體是一種構造類型,由若干成員組成。每一個成員可以是一個基本數據類型,也可以是構造類型(即:嵌套結構體)。

一、定義結構體

當現有的數據類型不能滿足實際需要時,就需要自行來定義一個全新的數據類型,也就是設計一個數據類型的藍圖。在定義結構體時,它其實並不佔據內存空間。定義結構體的方式有很多種。比如:

方式一:

圖1

關鍵詞struct開頭,包含:結構體名稱student,一對大括號,別忘了最後大括號後面一定要有一個分號(;)表示結束。

相關焦點

  • 第四篇:C語言中指針與字符串核心知識點梳理
    C語言的基本數據類型中有一個char的關鍵詞,可以存儲單個的字符。那麼,像漢字以及由多個字符組成的內容,又該如何存儲呢?這點將涉及到本文第二個核心知識點:字符串及其常規操作。重點包括:字符串處理函數、指針與字符串的關係等。
  • Go語言基礎之結構體(春日篇)
    前言Hey,大家好呀,我是星期八,終於迎來了Go中最大一個知識點是通過結構體的各種操作,模擬出來的像Java,Python之類的面向對象的。回憶map之前我們講過,Go語言的map是鍵值對的方式存儲數據的,就像這樣的。不記得的小夥伴請戳:一篇文章帶你了解Go語言基礎之map、Go語言基礎之map補充。
  • C語言相關文件的基本知識
    用過計算機的人,對文件都不陌生,大多數人都接觸過,今天我們來講講關於C語言相關文件的基本知識。首先,我們先來了解了解什麼是文件。文件有不同的類型,在程序的設計中,主要有兩種文件; 1.程序文件;包括源程序文件(後綴為.c),目標文件(後綴為.obj),可執行文件(後綴為.exe)等,這類文件的內容是程序代碼。
  • 第五篇:C語言中有關函數的相關知識點梳理
    函數是C語言中,組織程序的最基本的結構單元。我們最初學習C語言的第一個程序就是寫在主函數main()裡面的。在學習函數具體應用之前,我們只認識一個主函數,所有的代碼都必須寫在主函數裡面。01理解「函數」在C語言中,除了主函數、系統函數,還可以根據需要定製函數。
  • 以實例跟我學C語言:如何求解一元二次方程的根
    注意:這是一篇關於C語言編程的基礎語法內容,C語言大神請繞過。例子說明對於如下的一元二次方程:設計C語言程序,輸入一元二次方程的三個係數a、b、c,求解出該方程的兩個根,並且允許用戶在程序中多次輸入不同的係數,以求解不同的一元二次方程的解。
  • 自考「C語言程序設計」模擬試題九
    A.d&ef          B.6a            C.z4x5c           D.a3/b4  3.在C語言中,存儲一個字符型、整型、單精度實型變量所需的空間是()。example是結構體類型名  C. x,y,z都是結構體成員名    D.  struct ex是結構體類型  12.在C語言中對於實型數組,其每個數組元素的類型是(         )。  A.  實型          B. 整型      C.  可以為任何類型      D.  不確定  13.
  • 快速上手系列-C語言之基礎篇(一)
    按照之前的計劃,這篇文章本該寫C語言簡介,包括一些歷史背景,發展狀況, 語言特點什麼的,這些東西著實比較囉嗦。另外,相對於其他高級語言,比如C++、java、C#等來說,C語言編寫的代碼運行效率要高。在介紹C語言的數據類型和基本語法之前,先說說C程序結構和C文件結構。
  • C語言中的「不透明」指針是什麼,它有什麼用呢?
    雖說指針是C語言中比較複雜的語法,但是確實非常好用,因此我寫過不少文章討論C語言中的指針,相信對初學者理解指針有一定的幫助。事實上,的確有讀者私信我說看了這些文章,「總算不再畏懼指針了」。不過他同時也問了一個問題:C語言有「不透明指針(opaque pointer)」嗎?
  • 二級c語言考試改革_計算機二級考試c語言考試題型 - CSDN
    傳送門如下:http://www.sdzs.gov.cn/zsks/2018/1211/26ef3e3ac20a491696d12537c624d573.shtm(山東省的,其他省的可以百度**省教育招生考試院)一、公告查詢操作流程:1、進入官網首頁
  • 「C語言從入門到入土」必備C語言基礎筆記整理
    一、C語言1、什麼是C語言?C語言是人寫機器看的一種語言。C語言是高級語言中的低級語言。C語言貼近硬體。C語言的入門學習比較簡單。彙編語言——>B語言——>C語言2、C語言的特性首先C語言就是你的女朋友。無論你讓它幹什麼,它絕對不會自己找到方法。
  • C語言結構體描述BMP的文件格式
    本文轉載自【微信公眾號:strongerHuang,ID:strongerHuang】經微信公眾號授權轉載,如需轉載與原文作者聯繫BMP文件的結構其實非常簡單,就是兩個結構體+一個可選的調色板+位圖數據。第一個結構體是BITMAPFILEHEADER,第二個結構體是BITMAPINFOHEADER。然後就是可選的調色板(RGBQUAD數組)。
  • C Primer Plus怎樣高效學?C語言大神案例值得借鑑!
    我們常常聽到有人爭論「Python、Java、PHP......是這個世界上最好的語言」,卻很少聽到有人誇讚C語言,為什麼呢?因為C語言實在是太太太太難了......為什麼這麼多人學不會C語言呢?因為很多人覺得用C語言作為入門語言覺得太難了,裡面還有指針,回調,遞歸之類的操作太難了。為什麼這麼多人覺得C語言難?
  • Python使用ctypes模塊調用DLL函數之C語言數組與numpy數組傳遞
    在Python語言中,可以使用ctypes模塊調用其它如C++語言編寫的動態連結庫DLL文件中的函數,在提高軟體運行效率的同時,也可以充分利用目前市面上各種第三方的DLL庫函數,以擴充Python軟體的功能及應用領域,減少重複編寫代碼、重複造輪子的工作量,這也充分體現了Python語言作為一種膠水語言所特有的優勢
  • Python利用openpyxl處理Excel文件(單元格及行列具體操作)
    前面章節主要梳理學習了openpyxl的基本操作及單元格樣式設置等相關內容,另外也穿插講解了部分單元格行列操作的知識點。通過實戰項目演示,進一步加深了印象,整個過程我們不難發現,對於使用openpyxl操作Excel文件,行列遍歷及單元格的定位操作是整個過程的重要技巧和先決條件,因此,這節我們著重講解openpyxl對於單元格及行列遍歷的具體操作。
  • 第一篇:C語言編程基礎語法
    本專欄系列分六篇,總結了C語言基礎知識的核心要點。教學視頻已上線,讀者可根據自身情況有選擇性地學習。屬於高級語言,更接近人類語言邏輯,需要編譯器編譯,執行依賴運行環境;但容易學習。其特點:模塊化編程程序設計,層次清晰;語句簡潔,提出程序庫概念;功能強大,系統、應用軟體均可開發;移植性好,適合不同的作業系統。除此之外,C語言還有豐富的運算符、數據結構等,程序設計自由度大,可以對硬體進行操作。
  • C語言陷阱與技巧第13節,1位元組(Byte)一定等於8位(bit)嗎?C語言操作...
    所以,在C語言程序開發中,常常需要操作某個變量特定的位(bit),這對於C語言來說當然沒有任何難度,各種移位操作就能夠方便的解決該類需求,例如:unsignedchar status;status |= 0x01 << 2;status &= ~0x01;
  • ARM中ADS環境下C語言和彙編語言混合編程及示例
    稍大規模的嵌入式程序設計中,大部分的代碼都是用C來編寫的,主要是因為C語言具有較強的結構性,便於人的理解,並且具有大量的庫支持。但對於一寫硬體上的操作,很多地方還是要用到彙編語言,例如硬體系統的初始化中的CPU 狀態的設定,中斷的使能,主頻的設定,RAM控制參數等。
  • 深入理解C語言
    導讀:Dennis Ritchie過世了,他發明了C語言,一個影響深遠並徹底改變世界的計算機語言。一門經歷40多年的到今天還長盛不訓的語言,今天很多語言都受到C的影響,C++,Java,C#,Perl,PHP,Javascript等等。但是,你對C了解嗎?相信你看過本站的《C語言的謎題》還有《誰說C語言很簡單?》。
  • R語言中使用scan函數讀取文件中的數據
    在上一篇文章中介紹了使用scan函數從鍵盤中獲取數據的方法,本篇文章將介紹scan函數的另外一個常用功能:從文件中獲取數據。從文本文件中讀取數據假設在R的當前工作目錄中有一個文件:student.txt,其存儲的數據如下圖所示,每個數據以空格分隔。
  • c語言結構體數組初始化
    有關結構體數組初始化的問題struct _m_usmart_nametab usmart_nametab[]=本文引用地址:http://www.eepw.com.cn/article/201611/322298.htm{#if USMART_USE_WRFUNS==1 //如果使能了讀寫操作(void