Time of Update: 2018-12-06
大位元組序:把高有效位放在低位址區段,例如在按位元組定址的儲存空間中往地址 0x0001 存放值 0x12345678,在儲存空間中為 地址 數值 0x0004 0x78 0x0003 0x56 0x0002 0x34 0x0001 0x12小位元組序:把低有效位放在低位址區段,例如在按位元組定址的儲存空間中往地址 0x0001 存放值 0x12345678,在儲存空間中為
Time of Update: 2018-12-06
From :http://blog.csdn.net/listening_music/article/details/6921608下面用通俗易懂的話來概述一下:指標-對於一個類型T,T*就是指向T的指標類型,也即一個T*類型的變數能夠儲存一個T對象的地址,而類型T是可以加一些限定詞的,如const、volatile等等。見,所示指標的含義:引用-引用是一個對象的別名,主要用於函數參數和傳回值類型,符號X&表示X類型的引用。見,所示引用的含義:2、指標和引用的區別首先,引用不可以為空白,
Time of Update: 2018-12-06
#include<iostream>#include<vector>#include<string>#include<algorithm>using namespace std;int main(){ vector<char> vec; vector<char>::iterator it; cout<<"輸入第一個字串"<<endl; char ch; while((ch=getchar())!='#
Time of Update: 2018-12-06
動態串連庫的兩種方式? 答案:調用一個DLL中的函數有兩種方法: 1.載入時動態連結(load-time dynamic linking),模組非常明確調用某個匯出函數,使得他們就像本地函數一樣。這需要連結時連結那些函數所在DLL的匯入庫,匯入庫向系統提供了載入DLL時所需的資訊及DLL函數定位。 2.運行時動態連結(run-time dynamic linking),運行時可以通過LoadLibrary或LoadLibraryEx函數載入DLL。DLL載入後,模組可以通過調用
Time of Update: 2018-12-06
對於這樣的程式輸出結果#include<iostream>using namespace std;int main(){ printf("%f",5); printf("%d",5.01);}我的分析是這樣的:首先注意(棧中的數字是從高位向地位儲存的!比如 int a=3;&a指的是低位地址 不是高位地址,即是int的末尾 而不是int的開頭位置。)其實,在我們當我們弄清楚浮點數的儲存格式之後,就會明白其中的奧妙了。 在C語言標準中,浮點數是採用IEEE754標準
Time of Update: 2018-12-06
一個5位元字ABCDE*4=EDCBA ,這5個數字不重複,輸出這樣的數字#include<iostream>#include<stack>#include<algorithm>#include<cmath>using namespace std;int reverse(int i){ int resualt=0; stack<int> mys; for(int
Time of Update: 2018-12-06
彙編中,我們都知道div除法指令,要求被除數預設存放在ax,或者dx和ax中,而且要求被除數的位元,必須是除數的2倍,比如說,除數位8位,被除數就為16位,為什麼被除數的位元一定要為除數的2倍呢,有種解釋是這樣的: 因為CPU只會做加法運算,把其它一切的演算法都轉換成加法,比如說,除數 就先轉換加法,例如36/6 當CPU看到這個運算時,就會這樣想,需要多少個6 相加才能得到36呢,然後CPU就從1個6
Time of Update: 2018-12-06
#include<iostream>using namespace std;int main(){ char *p; if((p=(char *)malloc(0))==NULL) puts("got a null pointer"); else puts("got a valid pointer"); }答案:got a valid pointer 首先: 在標準的malloc實現中,
Time of Update: 2018-12-06
將建構函式,解構函式聲明為私人和保護的,那麼對象如何建立?已經不能從外部調用建構函式了,但是對象必須被構造,應該如何解決,麻煩大家幫忙說明,關於構造,解構函式聲明為私人和保護時的用法??? 提出這個問題,說明你已經對c++有所思考了。從文法上來講,一個函數被聲明為protected或者private,那麼這個函數就不能從“外部”直接被調用了。對於protected的函數,子類的“內部”的其他函數可以調用之。而對於private的函數,只能被本類“內部”的其他函數說調用。文法上就是這麼規定的,你肯
Time of Update: 2018-12-06
動太連結庫可以被所有的進程調用,如果不是動態連結程式庫就只能被當前的進程調用.首先在DLL中會有一個SetHookWindowEx函數它會設定一個全域的的鉤子和當前所有的線程相關聯.如果此時有一個進程中的一個線程給系統發送了訊息,作業系統就會去檢查這個線程是否已經安裝了鉤子過程,如果說發現安裝了全域鉤子過程,於是就會找到包含了這個鉤子過程的動態連結程式庫.將這個動態連結程式庫映射到這個進程的地址空間當中。然後再調用鉤子過程函數。將系統訊息傳給動態連結程式庫中定義的鉤子過程函數。
Time of Update: 2018-12-06
#include<iostream>using namespace std;int main(){ int a[10]; for(int i=0;i<10;i++) a[i]=i; memcpy(&a[4],a,sizeof(int)*6); for(i=0;i<10;i++) cout<<a[i]<<endl;} 很簡單的小程式!不過已經足以達到我的目的了:)將上面代碼gcc之後再運行,結果為:0 1 2 3 0 1 2 3 0 1
Time of Update: 2018-12-06
看羅雲彬的win32彙編,看到搜尋kernel32.dll基址問題的時候,有點小問題,書上說:主程式從堆棧得到的返回地址,將其作為參數傳遞過來,然後按64k對齊,也就是與0ffff0000h進行and操作,然後按頁搜尋時,遞減10000h!為什麼按64k對齊呢?咋不按記憶體中一頁大小對齊呢?還有為啥要遞減10000h呢?納悶啊。。。於是百度+google,老費勁地找到答案了。。。請看這段話!“對於載入到程式中的模組,基址都是對齊的,你自己可以用調試器看一下,程式中各個模組包括dll和程式本身,載
Time of Update: 2018-12-06
-r用這個指令,得到的資訊右下角: NV UP EI PL NZ NA PO NC這些符號代表的就是標誌寄存器裡常用標誌位的值。這個是符號值對應表:溢出標誌OF(Over flow flag) OV(1) NV(0)方向標誌DF(Direction flag) DN(1)
Time of Update: 2018-12-06
相對於SOCKET開發人員,TCP建立過程和連結折除過程是由TCP/IP協議棧自動建立的.因此開發人員並不需要控制這個過程.但是對於理解TCP底層運作機制,相當有協助. 而且對於有網路通訊協定工程師之類筆試,幾乎是必考的內容.企業對這個問題熱情之高,出乎我的意料:-)。有時上午面試前強調這個問題,並重複講一次,下午幾乎每一個人都被問到這個問題。 因此在這裡詳細解釋一下這兩個過程。 TCP三向交握 所謂三向交握(Three-way
Time of Update: 2018-12-06
長串連與短串連所謂長串連,指在一個TCP串連上可以連續發送多個資料包,在TCP串連保持期間,如果沒有資料包發送,需要雙方發檢測包以維持此串連,一般需要自己做線上維持。 短串連是指通訊雙方有資料互動時,就建立一個TCP串連,資料發送完成後,則斷開此TCP串連,一般銀行都使用短串連。 比如http的,只是串連、請求、關閉,過程時間較短,伺服器若是一段時間內沒有收到請求即可關閉串連。 其實長串連是相對於通常的短串連而說的,也就是長時間保持用戶端與服務端的串連狀態。長串連與短串連的操作過程 通常的短串
Time of Update: 2018-12-06
Determining the Size of a Class ObjectBy Girish ShettyThere are many factors that decide the size of an object of a class in C++. These factors are:Size of all non-static data members Order of data members Byte alignment or byte padding Size of its
Time of Update: 2018-12-06
#include"stdio.h"#include"string.h"#include<stdlib.h>#include<malloc.h>//#include<system>#define Max 20 /*結點的最大個數*/typedef struct node{ char data; struct node *lchild,*rchild;}BinTNode; /*自訂二叉樹的結點類型*/typedef BinTNode *BinTree;
Time of Update: 2018-12-06
轉自:http://blog.csdn.net/tunsanty/article/details/4264738 在C++中, 建構函式,拷貝建構函式,解構函式和賦值函數(賦值運算子多載)是最基本不過的需要掌握的知識。 但是如果我問你“拷貝建構函式的參數為什麼必須使用參考型別?”這個問題, 你會怎麼回答? 或許你會回答為了減少一次記憶體拷貝? 很慚愧的是,我的第一感覺也是這麼回答。不好還好,我有理性這個好品質。思索一下以後,發現這個答案是不對的。讓我來撕開(有點暴力,但是我喜歡,嘿嘿--齜牙)
Time of Update: 2018-12-06
設有n個正整數,將它們聯結成一排,組成一個最小的多位整數。程式輸入:n個數程式輸出:聯結成的多位元例如:n=2時,2個整數32,321串連成的最小整數為:32132,n=4時,4個整數55,31,312, 33 聯結成的最小整數為:312313355[題目要求]1. 給出虛擬碼即可,請給出對應的文字說明,並使用上面給出的例子實驗你的算法。2. 給出演算法的時間空間複雜度。3. 證明你的演算法。(非常重要) 寫個簡單的情況演算法:對於 輸入的數位元
Time of Update: 2018-12-06
一個完整的中斷處理過程應該包括:插斷要求、中斷排隊或中斷判優、中斷響應、中斷處理和中斷返回等環節,下面分別進行討論。 1.插斷要求 插斷要求是由中斷源向CPU發出插斷要求訊號。外部裝置發出插斷要求訊號要具備以下兩個條件: (1)外部裝置的工作已經告一段落。例如輸入裝置只有在啟動後,將要輸入的資料送到介面電路的資料寄存器(即準備好要輸入的資料)之後,才可以向CPU發出插斷要求。 (2)系統允許該外設發出插斷要求。如果系統不允許該外設發出插斷要求,可以將這個外設的請求屏蔽。當這個外設插斷要求