1 c中直接實現跳轉。
a 定義乙個簡單函式指標 void (*gotoaddr)(void);
b 初始化函式指標為一指定絕對位址,gotoaddr = (void (*)())100000,由於該變數型別為函式指標,所以要強制轉換為函式指標型別後賦值,不然會報型別不匹配的錯誤 ;
c 使用函式指標實現跳轉 ,(* gotoaddr)() 就會直接跳轉到100000位址處執行。
2 列印浮點數的16進製制值問題。 解決方法*((long*)&float_data)。 直接按新的資料型別規則訪問原來的資料空間。這印證了我的乙個想法:資料型別就是一種對資料的解釋格式,對同乙個資料空間用不同的資料型別解釋,可能會有不同的結果(有些可能相同)
涉及兩個問題:
一 %x只對整型值 ,所以不能直接強制轉換。
二 強制轉換是乙個拷貝過程,即原資料沒有被改變,我們只是對他的拷貝版本強制轉換後再使用, (float)float_data已經不是原來的資料了,而是修改過的資料。但是 *((long*)&float_data) 就是先獲得資料的首位址(指標),再將將指標轉換為(long *)型別指標 ,最後按long型別規則 訪問指標指向的空間(float_data)
C語言指標學習 二
1.c語言中,實參變數與形參變數之間的資料傳遞,是單向的 值傳遞 方式。指標變數做函式引數也要遵循這一規則。呼叫函式不可能改變實參指標變數的值,但可以改變實參指標變數所指向變數的值。我們知道函式的呼叫可以得到乙個返回值,而運用指標變數做引數,可以得到多個變化了的變數值。2.在主調函式中宣告所要求的數...
C C 指標學習記錄(二)
我們在使用指標的時候,記住下面的準則可以很好的幫助我們節約修改程式的時間。建立鍊錶是我們學習資料結構的最基礎的能力。鍊錶這一塊真的就是聽懂容易,上手難。但是解決方法非常樸實,多敲就好!其實就是,我們建立了乙個結構體。這個結構體裡面有兩個部分,其一是資料區,其二就是我們的指標區 裡面存放的就是下乙個結...
C語言指標學習二 何時使用指標
在下面這篇文章中已經有對指標做過學習,指標作為c語言中極為重要的部分,它在為程式設計師提供極大便利的同時似乎也隱藏了各種潛在的危險。用好了指標,對c語言程式設計很有幫助 用不好,程式可能隨時會出錯,並且引起問題的原因也很難查詢。所以接下來就需要知道什麼時候該用指標,什麼時候不應該用。只有在適當的時機...