函數指標及應用

我們先來看一下以下的聲明:int f(int);int  (*pf)(int)=&f;//&操作符可選;因為函數名被使用時總是由編譯器把它                           //轉換為函數指標;int ans;ans=f(25);ans=(*pf)(25);ans=pf(25);//間接訪問操作並非必需,因為編譯器需要的是一個函數指標;****************************************************************

IE8 調試ocx 無法進入斷點

環境:vs2005+IE8IE8調用vs2005編寫的ocx,斷點無法進入。找了很長時間,仍然無法進入原因:IE8 /IE9 預設是多進程工作的,所以預設情況下不能進行調試:解決方案:關閉IE的保護模式,避免IE用多進程方式開啟網頁,否則調試器啟動的IE進程跟網頁所在的IE進程不同,就不能中斷。通過修改註冊表改為多進程工作的時候,啟動的IE進程和載入要調試的ocx的IE進程不是一個進程,所以不能調試1. 點擊【開始】->【運行】 命令:regedit.2.

約瑟夫環的數學最佳化方法

       首先,約瑟夫環的數學最佳化方法為:        為了討論方便,先把問題稍微改變一下,並不影響原意:問題描述:n個人(編號0~(n-1)),從0開始報數,報到(m-1)的退出,剩下的人繼續從0開始報數。求勝利者的編號。      我們知道第一個人(編號一定是(m-1)%n) 出列之後,剩下的n-1個人組成了一個新的約瑟夫環(以編號為k=m%n的人開始):      k k+1 k+2 ... n-2, n-1, 0, 1, 2, ... k-2

程式員面試100題之一:對稱字串的最大長度

題目:輸入一個字串,輸出該字串中對稱的子字串的最大長度。比如輸入字串“google”,由於該字串裡最長的對稱子字串是“goog”,因此輸出4。分析:可能很多人都寫過判斷一個字串是不是對稱的函數,這個題目可以看成是該函數的加強版。要判斷一個字串是不是對稱的,不是一件很難的事情。我們可以先得到字串首尾兩個字元,判斷是不是相等。如果不相等,那該字串肯定不是對稱的。否則我們接著判斷裡面的兩個字元是不是相等,以此類推。基於這個思路,我們不難寫出如下代碼:/*判斷起始指標為pBegin,結束指標為pEnd的

__stdcall 與 __cdecl 區別

__cdeclC++void fun(int a)   //預設__cdecl{ cout << a;}int main(){ fun(3); system("pause"); return 0;} 反組譯碼:void fun(int a){00D713A0  push        ebp  00D713A1  mov         ebp,esp  00D713A3  sub         esp,0C0h  00D713A9  push        ebx  00D713

程式員面試100題之二:跳台階問題(變態跳台階)

題目1:一個台階總共有n級,如果一次可以跳1級,也可以跳2級。求總共有多少總跳法,並分析演算法的時間複雜度。分析:這道題最近經常出現,包括MicroStrategy等比較重視演算法的公司都曾先後選用過個這道題作為面試題或者筆試題。首先我們考慮最簡單的情況。如果只有1級台階,那顯然只有一種跳法。如果有2級台階,那就有兩種跳的方法了:一種是分兩次跳,每次跳1級;另外一種就是一次跳2級。現在我們再來討論一般情況。我們把n級台階時的跳法看成是n的函數,記為f(n)。當n>2時,第一次跳的時候就有兩

表白——若水止三千

出租車緩緩的停在了郊區的那地方,那是一個不具名的小路,兩邊都有著草坪,看起來很幽靜“唔......空氣好清晰,你是怎麼找到這個的地方的?”蘇沛下車後張開雙臂,然後深深地呼吸了一口氣。“蘇沛,我.......”話說到了嘴巴卻不知道怎麼去開口我又不知不覺的想起了那天和和陳怡說的話。那晚上我把自己和王嵐的之間的男女朋友關係說給陳怡聽的時候,她問我“你是怎麼向王嵐表白的?”“沒有,我就對她說:我們在一起吧,然後什麼也沒說。”陳怡聽到這個後很不可以思議,然後給我說了一大堆道理。“周誠,你說是你是傻還是怎麼

《如何求解問題+現代啟發學習法方法(Modern Heuristics)》讀書筆記1

@@問題=>模型=>求解求解問題的時候,我們其實往往是先把問題描述為一個模型,然後給問題的模型求解 @@證明問題的基本思路1演繹法2歸納法3反證法4把這個問題轉換為它的逆否命題再做證明 @@對演算法進行分類第一類:評估子空間而非個體解貪婪演算法、動態規劃、分枝界定法第二類:將整個搜尋空間看成潛在解的統一集合,只評估單個完整解,而沒有子空間的概念。        爬山法、類比退火、禁忌搜尋第三類:演化演算法      

程式員面試100題之三:不用+、-、×、÷數字運算子做加法

題目:寫一個函數,求兩個整數的之和,要求在函數體內不得使用+、-、×、÷。        分析:這又是一道考察發散思維的很有意思的題目。當我們習以為常的東西被限制使用的時候,如何突破常規去思考,就是解決這個問題的關鍵所在。        看到的這個題目,我的第一反應是傻眼了,四則運算都不能用,那還能用什麼啊?可是問題總是要解決的,只能開啟思路去思考各種可能性。首先我們可以分析人們是如何做十進位的加法的,比如是如何得出5+17=22這個結果的。實際上,我們可以分成三步的:第一步只做各位相加不進位,

資料結構課程設計———用棧來實現運算式求值

1、需求分析設計一個程式,示範用算符優先法對算術運算式求值的過程。利用算符優先關係,實現對算術四則混合運算運算式的求值。(1)輸入的形式:運算式,例如2*(3+4)     包含的運算子只能有'+' 、'-' 、'*' 、'/' 、'('、 ')';(2)輸出的形式:運算結果,例如2*(3+4)=14;(3)程式所能達到的功能:對錶達式求值並輸出2、系統設計1、棧的抽象資料類型定義:ADT

屏蔽掉warning 4786

最近寫vector和map相關的程式時,經常遇到編譯無錯誤但是有警告的情況。警告中總是含有一個數字 warning 4786。原因:不是STL的問題也不是coder的問題,而是VC的一個bug。VC認為,C/C++中的標示符應該小於256位元組。如果大於等於這個長度,那麼vc就會認為長度太長了,該給出警告了。但是實際上,STL中很容易出現大於256位元組的標識符,這並不是錯誤。解決:辦法有很多,我試出來OK的是這個:把下面這段話加入標頭檔中(比如我加的是StdAfx.h這個標頭檔)#ifdef

彙編指令的英文解釋

1.通用資料傳送指令. MOV----> move MOVSX---->extended move with sign data MOVZX---->extended move with zero data PUSH---->push POP---->pop PUSHA---->push all POPA---->pop all PUSHAD---->push all data POPAD---->pop all data BSWAP----

程式員面試100題之四:求1+2+…+n

題目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字以及條件判斷語句(A?B:C)。        分析:這道題沒有多少實際意義,因為在軟體開發中不會有這麼變態的限制。但這道題卻能有效地考查發散思維能力,而發散思維能力能反映出對編程相關技術理解的深刻程度。       通常求1+2+…+n

七種方式求斐波那契(Fibonacci)數列通項

一:遞迴實現   使用公式f[n]=f[n-1]+f[n-2],依次遞迴計算,遞迴結束條件是f[1]=1,f[2]=1。二:數組實現   空間複雜度和時間複雜度都是0(n),效率一般,比遞迴來得快。三:vector<int>實現   時間複雜度是0(n),時間複雜度是0(1),就是不知道vector的效率高不高,當然vector有自己的屬性會佔用資源。四:queue<int>實現   當然隊列比數組更適合實現斐波那契數列,時間複雜度和空間複雜度和vector<int

計算網格中直線經過的格子

關於在位元影像上像繪製直線的演算法,可以參見:http://free.pages.at/easyfilter/bresenham.html。但是不同於在位元影像上繪製直線,需要的是:一條直線經過哪些格子。假設有p0,p1兩個點,位置如:我們很容易得到連線的方程。首先我們按照在x上取整遞增,很容易計算出x=1, 2, 3,

程式員面試100題之五:二叉樹兩個結點的最低共同父結點

 題目:二叉樹的結點定義如下:    struct TreeNode   {              int m_nvalue;             TreeNode* m_pLeft;             TreeNode* m_pRight;};輸入二叉樹中的兩個結點,輸出這兩個結點在數中最低的共同父結點。        分析:求數中兩個結點的最低共同結點是面試中經常出現的一個問題。這個問題至少有兩個變種。       

四道面試題

1、給定一個N個整數元素的數組,元素分別為A1, A2, A3....AN,每個元素分別對應一個權重W1(小於1的float), W2,W3....WN,其和為1,找出其中一個元素Ak,使所有小於Ak的元素的權重之和小於1/2,所有大於Ak的元素的權重之和>=1/2。       

程式員面試100題之六:最長公用子序列

       題目:如果字串一的所有字元按其在字串中的順序出現在另外一個字串二中,則字串一稱之為字串二的子串。注意,並不要求子串(字串一)的字元必須連續出現在字串二中。請編寫一個函數,輸入兩個字串,求它們的最長公用子序列,並列印出最長公用子序列。      例如:輸入兩個字串BDCABA和ABCBDAB,字串BCBA和BDAB都是是它們的最長公用子序列,則輸出它們的長度4,並列印任意一個子序列。       分析:求最長公用子序列(Longest Common Subsequence, LCS)

typedef 函數指標

關於C++中函數指標的使用(包含對typedef用法的討論) (一)簡單的函數指標的應用。//形式1:傳回型別(*函數名)(參數表) char (*pFun)(int); char glFun(int a){ return;} void main() {     pFun = glFun;     (*pFun)(2); }         第一行定義了一個指標變數pFun。首先我們根據前面提到的“形式1”認識到它是一個指向某種函數的指標,這種函數參數是一個int型,傳回值是char類型。只有第

遠端控制主機的幾種方法比較

      如何在宿舍通過電腦存取控制自己放在實驗室的電腦?    主要總結了 telnet服務、ftp服務、共用資料夾、遠端桌面連線 幾種方法。 1. telnet服務    優點:操作簡便、通用性強    缺點:不能上傳下載檔案,只能遠程設定主機(可以通過訪問自己FTP服務實現上傳下載,不過很麻煩)。    使用方法:           被控主機:控制台開啟 telnet伺服器 服務;在 使用者組 TelnetClients 中添加使用者;          

總頁數: 61357 1 .... 18510 18511 18512 18513 18514 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.