1樓:娛樂影視君
在c語言中,程式執行期間,其值可以改變的量叫做變數。 當在窗體中設計使用者介面時,c語言會自動為產生的物件(包括窗體本身)建立一組變數,即屬性變數,併為每個變數設定其預設值。這類變數可供使用者直接使用,比如引用它或給它賦新值。
使用者也可以建立自己的變數,以便存放程式執行過程中的臨時資料或結果資料等等。 擴充套件資料: 變數的作用域由宣告它的位置決定。
如果在過程中宣告變數,則只有該過程中的**可以訪問或更改變數值,此時變數具有區域性作用域並被稱為過程級變數。如果在過程之外宣告變數,則該變數可以被script中所有過程所識別,稱為script級變數,具有script級作用域。 變數可以儲存程式執行時使用者輸入的。
變數用的比較多的是const 如 const int value = 50; 需要注意的時必須在變數宣告時賦初值,而不能寫成 const int value; value = 50; const修飾的欄位是編譯時 常量const不能與static聯合使用,預設即為static的,const=static+literal const只能應用於原始資料型別。
程式被開啟時,即程式開始執行時,會首先向作業系統請求獨佔記憶體空間(一段在程式整個執行過程中都不釋放的空間),作業系統會應答請求並分配一段邏輯上連續(其實是將零散的記憶體空間對映為一段連續的空間)的記憶體空間給該程式,此時程式得到該段空間的邏輯位址資訊,根據位址將程式**段和資料段裝入記憶體,此時程式載入完成。
2.程式執行中,當某一過程任務需要更大記憶體空間時,會再次向作業系統發出請求,作業系統會根據請求再次分配記憶體空間給該程式,當這一過程任務執行完畢後,該記憶體空間被釋放。同時由於作業系統的儲存保護,程式在執行過程中只能訪問自己所申請的記憶體空間,不能訪問其他程式的記憶體空間。
3.當程式執行完畢或關閉程式後,該程式所佔的所有記憶體空間都被釋放。
當你再次開啟程式後,重複上面的過程。
2樓:網友
我不知道啊!你可以問問別人。
變數中只能存放指定型別的資料,程式執行過程中可以改變變數型別,這句話錯哪了?剛學習c語言,求助。
3樓:
變數定義之後,在其生命週期內只可以修改此變數的值,不能修改此變數的資料型別,就像乙個人生下來性別就決定了,不能造次。
4樓:網友
變數定義後型別就決定了,不可以再改變變數型別。
plc在執行程式時是按照什麼樣的方式執行的?
5樓:遲玉蹉惜香
當plc投入執行後,其工作過程一般分為三個階段,即輸入取樣、使用者程式執行和輸出重新整理三個階段(即:輸入、執行、輸出)。
完成上述三個階段稱作乙個掃瞄週期。
在整個執行期間,plc的cpu以一定的掃瞄速度重複執行上擾渣清述三個階段。
一)輸入取樣階段。
在輸入取樣階段,plc以掃瞄方式依次地讀入所有輸入狀態和資料,並將它們存入i/o映象區中的相應得單元內。輸入取樣結束後,轉入使用者程式執行和輸出重新整理階段。在這兩個階段中,即使輸入狀態和資料發生變化,i/o映象區中的相應單元的狀態和資料也不會改變。
因此,如果輸入是脈衝訊號,則該脈衝訊號的寬度必須大於乙個掃瞄週期,才能保證在任何情況下,該輸入均能被讀入。
二)使用者程式執行階段。
在執行階段,plc總是按由上而下的順序依次地掃瞄使用者程式(梯形圖)。在掃瞄每一條梯形圖時,又總是先掃瞄梯形圖左邊的由各觸點構成的控制線路,並按先左後右、先上後下的順序對由觸點構成的控制線路進行邏輯運算,然後根據邏輯運算的結果,重新整理該邏輯線圈在系統ram儲存區中對應位的狀態;或者重新整理該輸出線圈在i/o映象區中對應位的狀態;或者確定是否要執行該梯形圖所規定的特殊功能指令。
三)輸出重新整理階段。
當掃瞄使用者程式結束後,plc就進入輸出重新整理階段。在此期間,cpu按照i/o映象區內對應的狀態和資料刷緩前新所有的輸出鎖存電路,再經輸出電路驅動梁慎相應的外設。這時,才是plc的真正輸出。
作業系統中的動態重定位和靜態重定位?
6樓:生活類答題小能手
靜態重定位:即在程式裝入記憶體的過程中完成,是指在程式開始執行前,程式中的各個位址有關的項均已完成重定位,位址變換通常是在裝入時一次完成的,以後不再改變,故稱為靜態重定位。
7樓:哎呀小白妞
作業系統中靜態重定位是指在程式開始執行前,程式中的各個位址有關的項均已完成重定位,位址變換通常是在裝入時一次完成的,以後不再改變。而動態重定位即在程式執行過程中要訪問資料時再進行邏輯位址與實體地址的變換。
動態重定位根據每次程式執行的情況重新定位,位址在每一次程式執行時候都是變動的,容易共享同一程式副本,即共享同一程式中相同的的原始子程式,而靜態重定位裝入時位址就已經確定,難以共享同一程式副本。
8樓:網友
程式和資料裝入記憶體時需對目標程式中的位址進行修改。這種把邏輯位址轉變為記憶體的實體地址的過程叫重定位。
對程式進行重定位的技術按重定位的時機可分為兩種:靜態重定位和動態重定位。
靜態重定位是在目標程式裝入記憶體時,由裝入程式對目標程式中的指令和資料的位址進行修改,即把程式的邏輯位址都改成實際的位址。對每個程式來說,這種位址變換只是在裝入時一次完成,在程式執行期間不再進行重定位。
靜態重定位的優點是無需增加硬體位址轉換機構,便於實現程式的靜態連線。在早期計算機系統中大多采用這種方案。
它的主要缺點是:(1)程式的儲存空間只能是連續的一片區域,而且在重定位之後就不能再移動。這不利於記憶體空間的有效使用。(2)各個使用者程序很難共享記憶體中的同一程式的副本。
動態重定位是在程式執行期間每次訪問記憶體之前進行重定位。這種變換是靠硬體位址變換機構實現的。通常採用乙個重定位暫存器,其中放有當前正在執行的程式在記憶體空間中的起始位址,而位址空間中的**在裝入過程中不發生變化。
動態重定位的主要優點是:(1)程式佔用的記憶體空間動態可變,不必連續存放在一處。(2)比較容易實現幾個程序對同一程式副本的共享使用。
它的主要缺點是需要附加的硬體支援,增加了機器成本,而且實現儲存管理的軟體演算法比較複雜。
現在一般計算機系統中都採用動態重定位方法。
9樓:網友
動態重定位的話,程式可以裝入任意記憶體區域(不要求佔用連續的記憶體區),只裝入部分程式**就可以執行。改變系統時不需要改變程式(程式佔用的記憶體空間動態可變,只需要改變定位暫存器中的值即可),所以程式可以方便共享同乙個程式的副本。
10樓:吖青汁
動態重定位 位址轉換 怎麼算呢 誰可以舉個例子 謝謝。
51微控制器程式和資料問題?
11樓:網友
rom是程式儲存器,燒寫完程式後就固化在裡面了,不可隨意改寫;平常所說的可以反覆擦寫是指在特定電壓(比正常工作電壓要高很多)和時序下才能夠進行的,而微控制器在正常執行過程中的電壓和時序都是無法滿足擦寫電壓和時序的,所以說如果沒有專門的燒寫工具當然是不可更改的了;編譯的**是將人可以識別的程式語言轉變成機器可以識別的二進位**,然後將這些二進位資料存放在rom中,雖然已經資料化了,但是表達的是程式的意思;當然,我們在編寫程式的時候,程式語句中常會有很多的資料,而這些資料是存放在rom中的,但是這些都是無法改變的資料,是已經固化了的;
ram是存放變數的暫存器,存放的資料是根據程式的執行而進行變化的,裡面的內容不是固定的,同時ram在有電的時候才能夠暫時儲存資料,一旦掉電則裡面存放的資料則會全部丟失;
另外,ram中的內容是由cpu執行了rom中的指令決定的,是隨著指令的變化而變化的。
12樓:網友
程式不都是放在rom所以管rom叫程式儲存器ram是用於即時存放正在處理的資料,所以叫資料儲存器啊。
各種變數和暫存器存放的是資料不是程式。
rom是程式儲存器,執行過程中不能修改rom裡面的資料,所以不能更改,而ram在執行過程中可以更改。
別老摳字眼了!你摳字眼的時候別人已經開始學下一章了!
這個東西久了自然會懂的,什麼時候懂都不知道,往下學吧。
13樓:
rom是程式儲存器,每次燒寫完成後程式就已經固化在裡面,不可更改,掉電不丟失,微控制器執行時就是執行它裡面的程式。ram是存放程式執行時存放變數的地方,所以叫資料儲存器,也叫記憶體,掉電會丟失。
14樓:南窗倚
rom是放程式的!!rom程式成中文就是:「唯讀儲存器」就是隻能讀出,不能寫入。
ram是放資料的。就是你說的那個什麼什麼變數之類的。像你寫程式的時候寫了這麼一句:
unsigned cahr i;這個i在編譯的時候就給它在ram當中留乙個空間,
c#中,有乙個變數會隨著程式的執行而改變,如何儲存它的乙個特定時候的值?
15樓:折柳成萌
有這幾種辦法,你看那種合適:
1.寫入到乙個配置檔案,下次程式啟動時讀取配置檔案即可。
2.寫入到登錄檔。
3.建立乙個系統環境變數,把變數值儲存到環境變數中,下次啟動讀取它我想一般常用前兩種吧。
資料庫能否直接引用excel工作表,以便程式執行時,能簡單地修改資料
16樓:
access資料庫是office自帶的,可以直接讀excel檔案的。
java程式執行時沒有賦值的基本型別變數會在記憶體
看不懂你說什麼,不過好像大致沒錯,你說的這種情況和普通物件類似.簡單說,棧存的是地址,堆存的是具體資料 你說的沒有賦值的基本型別,比如方法中的基本型別就這樣的情況不過不賦處置,編譯器都過不了 不賦初值的不是你說的這種情況 x證 要看你這句int a處於什麼地方,如果是在方法內部中被執行到,也就是說是...
當電腦的程式執行時可以聽到嘶嘶的聲音,這是硬碟響嗎
開機時,硬碟啟動的時候會有這樣的聲音,很正常,但是如果是一直響或者間斷性的就不正常了,硬碟最好是平放在機箱裡。不要有力拍機箱,挪放得時候要輕拿輕放,硬碟這東西是主機裡面硬體最怕磕碰的東西。是硬碟的聲音,你先看看電腦是否平穩,有的時候由於有傾斜度導致電腦不平會引起上述問題 聲音均勻就不用擔心。樓主電腦...
這兩個VB程式在執行時有什麼區別
until a 100 是直到a 100時,迴圈才退出 while a 100 是當a 100時,才迴圈 可見第二個迴圈只執行了一次 loop until是先判斷後執行,loop while是先執行後判斷。也就是說前者可能一次都不執行,但後者至少執行一次 第一個程式執行,a的值為 1,3,5,7,a...