程序怎麼存儲數據結構
『壹』 什麼是存儲程序原理
馮.諾依曼描述的計算機基本工作原理的主要思想是程序存儲。
存儲程序原理又稱「馮·諾依曼原理」(1946年提出)。將程序像數據一樣存儲到計算機內部存儲器中的一種設計原理。程序存入存儲器後,計算機便可自動地從一條指令轉到執行另一條指令。現代電子計算機均按此原理設計。
馮·諾依曼結構也稱普林斯頓結構,是一種將程序指令存儲器和數據存儲器合並在一起的存儲器結構。程序指令存儲地址和數據存儲地址指向同一個存儲器的不同物理位置,因此程序指令和數據的寬度相同,如英特爾公司的8086中央處理器的程序指令和數據都是16位寬。
(1)程序怎麼存儲數據結構擴展閱讀:
人們把馮·諾依曼的這個理論稱為馮·諾依曼體系結構。從EDVAC到當前最先進的計算機都採用的是馮諾依曼體系結構。所以馮·諾依曼是當之無愧的數字計算機之父。
人們把利用這種概念和原理設計的電子計算機系統統稱為「馮.諾曼型結構」計算機。馮.諾曼結構的處理器使用同一個存儲器,經由同一個匯流排傳輸。
馮·諾依曼的主要貢獻就是提出並實現了「存儲程序」的概念。由於指令和數據都是二進制碼,指令和操作數的地址又密切相關,因此,當初選擇這種結構是自然的。但是,這種指令和數據共享同一匯流排的結構,使得信息流的傳輸成為限制計算機性能的瓶頸,影響了數據處理速度的提高。
在典型情況下,完成一條指令需要3個步驟,即:取指令、指令解碼和執行指令。從指令流的定時關系也可看出馮·諾依曼結構與哈佛結構處理方式的差別。
舉一個最簡單的對存儲器進行讀寫操作的指令,指令1至指令3均為存、取數指令,對馮.諾曼結構處理器,由於取指令和存取數據要從同一個存儲空間存取,經由同一匯流排傳輸,因而它們無法重疊執行,只有一個完成後再進行下一個。
『貳』 編程中數據結構是什麼
各種編程語言都是需要演算法的,數據結構決定演算法。數據結構是計算機存儲、組織數據的方式。數據結構是指相互之間存在一種或多種特定關系的數據元素的集合。通常情況下,精心選擇的數據結構可以帶來更高的運行或者存儲效率。數據結構往往同高效的檢索演算法和索引技術有關。編程語言(programminglanguage),是用來定義計算機程序的形式語言。它是一種被標准化的交流技巧,用來向計算機發出指令。一種計算機語言讓程序員能夠准確地定義計算機所需要使用的數據,並精確地定義在不同情況下所應當採取的行動。最早的編程語言是在電腦發明之後產生的,當時是用來控制提花織布機及自動演奏鋼琴的動作。在電腦領域已發明了上千不同的編程語言,而且每年仍有新的編程語言誕生。很多編程語言需要用指令方式說明計算的程序,而有些編程語言則屬於聲明式編程,說明需要的結果,而不說明如何計算。編程語言的描述一般可以分為語法及語義。語法是說明編程語言中,哪些符號或文字的組合方式是正確的,語義則是對於編程的解釋。有些語言是用規格文件定義,例如c語言的規格文件也是ISO標准中一部份,2011年後的版本為ISO/IEC9899:2011,而其他語言(像Perl)有一份主要的編程語言實現文件,視為是參考實現。編程語言俗稱「計算機語言」,種類非常的多,總的來說可以分成機器語言、匯編語言、高級語言三大類。電腦每做的一次動作,一個步驟,都是按照已經用計算機語言編好的程序來執行的,程序是計算機要執行的指令的集合,而程序全部都是用我們所掌握的語言來編寫的。所以人們要控制計算機一定要通過計算機語言向計算機發出命令。目前通用的編程語言有兩種形式:匯編語言和高級語言。
『叄』 C語言中怎樣用鏈表保存結構體數據(動態數據結構)
單向鏈表很簡單的,你這幾這么就可以了:
struct client{
char account[14]; //賬號
char name[10]; //名字
char identity[20]; //身份證號
char address[15]; //地址
long int money; //存款(可存可取)
client* pNext; //指向下一個節點,如果是最後一個節點則為NULL
};
然後,程序里只需要保存第一個節點就行了:
client* head = (client*)malloc(sizeof(client)); //第一個節點這么產生
head->pNext = NULL; //該表只有一個節點,所以第一個也是最後一個,別忘記賦0
插入的時候從頭部插入就行了
client* p = (client*)malloc(sizeof(client));
p->pNext = head;
head = p; //將原來的頭付給p的pNext指針,然後原來保存頭元素的指針用p取代。
遍歷鏈表更加容易了
client* pNode = head;
while (pNode)
{
printf(pNode->account); //比如列印所有客戶的帳號
pNode = pNode->pNext; //讓pNode指向下一個節點
//如果該節點是最後一個節點,那麼pNode就會變成NULL,因為最後一個節點的pNext指針是NULL,while循環就會因為pNode為0而結束
}
保存進文件的時候相當於遍歷一邊所有的元素,讀取的時候則一個一個讀取,然後重新插入鏈表。最後,提醒一下的是別忘記用free釋放由malloc分配的內存。
另外,考慮使用C++,可以更好的管理內存,思路也會更清晰。而且,如果是為了應用,根本不需要自己開發鏈表類,用STL就可以了,STL不僅提供雙向鏈表,還有Map,HashMap等數據結構,非常適合特別大的數據量保存和查找,鏈表的查找很慢的,找一個數據相當於要把鏈表全部過一遍。
『肆』 計算機是怎麼存儲數據的
數據結構為計算機存儲、組織數據的方式。數據結構指相互之間存在一種或多種特定關系的數據元素的集合。通常情況下,精心選擇的數據結構可以帶來更高的運行或者存儲效率。數據結構往往同高效的檢索演算法和索引技術有關。
數據存儲對象包括數據流在加工過程中產生的臨時文件或加工過程中需要查找的信息。數據以某種格式記錄在計算機內部或外部存儲介質上。數據存儲要命名,這種命名要反映信息特徵的組成含義。數據流反映了系統中流動的數據,表現出動態數據的特徵;數據存儲反映系統中靜止的數據,表現出靜態數據的特徵。
(4)程序怎麼存儲數據結構擴展閱讀
磁碟和磁帶都是常用的存儲介質。數據存儲組織方式因存儲介質而異。在磁帶上數據僅按順序文件方式存取;在磁碟上則可按使用要求採用順序存取或直接存取方式。數據存儲方式與數據文件組織密切相關,其關鍵在於建立記錄的邏輯與物理順序間對應關系,確定存儲地址,以提高數據存取速度。
『伍』 c語言編程中怎麼用文件存儲數據具體一點,謝謝
主要用C語言的庫函數,有open write read 或者是fopen fwrite fread這幾個函數,迅速就是先open 然後write,具體函數的用法可自行網路,如果你是問存儲數據的格式的話,自己定義結構體存儲的方式是最方便直接的
『陸』 C語言中結構體在內存中的存儲方式
結構體在內存中的存儲方式,和常規的C語言變數、常量存儲方式類似,唯的不同在於對齊。
只所以要進行數據對齊是因為編譯器對結構的存儲的特殊處理能提高CPU存儲變數的速度,一般來說,32位的CPU內存以4位元組對齊,64位的CPU的以8位元組的對齊。一般可以使用#pragma pack()來指出對齊的位元組數。比如下面的代碼,在debug會顯示結構體test的內存大小為28,如果生成release版則所佔內存大小為32 。
#include<stdio.h>
#ifdef_DEBUG
#pragmapack(4)
structtest
{
charx[13];//13
intd;//4
doublef;//8
}ss;
#else
#pragmapack(8)
structtest
{
charx[13];//13
intd;//4
doublef;//8
}ss;
#endif
intmain(void){
printf("%d ",sizeof(ss));
return0;
}