新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機c語言教程:C51運算符和表達式(指針和地址運算符)

        單片機c語言教程:C51運算符和表達式(指針和地址運算符)

        作者: 時間:2012-09-12 來源:網絡 收藏

        sizeof 符看上去這確實是個奇怪的符,有點像函數,卻又不是。大家看到 size 應該就猜到 是和大小有關的吧?是的,sizeof 是用來求數據類型、變量或是的字節數的一個運 算符,但它并不像“=”之類符那樣在程序執行后才能計算出結果,它是直接在編譯時 產生結果的。它的語法如下:

        sizeof (數據類型)

        sizeof () 下面是兩句應用例句,程序大家能試著編寫一下。

        printf(char 是多少個字節? ½ 字節n,sizeof(char));

        printf(long 是多少個字節? ½ 字節n,sizeof(long));

        結果是:

        char 是多少個字節? 1 字節

        long 是多少個字節? 4 字節

        強制類型轉換運算符 不知你們是否有自己去試著編一些程序,從中是否有遇到一些問題?開始學習時我就遇到過這樣一個問題:兩個不一樣數據類型的數在相互賦值時會出現不對的值。如下面的一段小程序:

        void main(void)

        {

        unsigned char a;

        unsigned int b;

        b=100*4;

        a=b;

        while(1);

        }

        這段小程序并沒有什么實際的應用意義,如果你是細心的朋友定會發現 a 的值是不會等于100*4 的。是的 a 和 b 一個是 char 類型一個是 int 類型,從以前的學習可知 char 只占一個 字節值最大只能是 255。但編譯時為何不出錯呢?先來看看這程序的運行情況:

        點擊瀏覽下一頁

        圖 9-3 小程序的運行情況

        b=100*4 就能得知 b=0x190,這個時候我們能在 Watches 查看 a 的值,對于 watches 窗口我們 在第 5 課時簡單學習過,在這個窗口 Locals 頁里能查看程序運行中的變量的值,也能在 watch 頁中輸入所要查看的變量名對它的值進行查看。做法是按圖中 1 的 watch#1(或watch#2),然后光標移到圖中的 2 按 F2 鍵,這樣就能輸入變量名了。在這里我們能查看到 a 的值為 0x90,也就是 b 的低 8 位。這是因為執行了數據類型的隱式轉換。隱式轉換是 在程序進行編譯時由編譯器自動去處理完成的。所以有必要了解隱式轉換的規則:

        c語言相關文章:c語言教程




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新源县| 太保市| 喀喇沁旗| 安福县| 富川| 永安市| 凭祥市| 伊春市| 上饶市| 巴塘县| 丰台区| 麦盖提县| 东辽县| 柏乡县| 乌苏市| 鹤峰县| 准格尔旗| 特克斯县| 墨江| 江川县| 辉县市| 张掖市| 西峡县| 赞皇县| 冷水江市| 阳高县| 阳东县| 清涧县| 抚顺县| 保康县| 花莲县| 西乌珠穆沁旗| 阿尔山市| 洞头县| 沈丘县| 汝阳县| 岳阳市| 临澧县| 陆丰市| 崇阳县| 金湖县|