首頁>Club>
2
回覆列表
  • 1 # 使用者834195712159

    當我們定義一個變數a,並給a賦予0~255的值,很顯然沒有問題,如程式碼:

    #include<stdio.h>

    void main( )

    {

    int a = 0; //將0值賦給變數a

    int b = 255; //將255值賦給變數b

    putchar(a) ; //輸出變數a的值

    putchar(b) ; //輸出變數b的值

    putchar("\n") ;

    }

    結果顯然沒有問題。

    但如果現在賦值為負數呢?如程式碼:

    #include<stdio.h>

    void main( )

    {

    int a = -4646; //將-4646值賦給變數a

    int b = -2; //將-2值賦給變數b

    putchar(a) ; //輸出變數a的值

    putchar("\n") ;

    putchar(b) ; //輸出變數b的值

    putchar("\n") ;

    }

    發現編譯正常,也能輸出結果,只是輸出的結果都是空,我也不太清楚是什麼原因?

    還有一種情況是,賦的值大於255時,會怎樣?程式碼如下:

    #include<stdio.h>

    void main( )

    {

    int a = 592; //將592值賦給變數a

    int b = 267; //將267值賦給變數b

    putchar(a) ; //輸出變數a的值

    putchar("\n") ;

    putchar(b) ; //輸出變數b的值

    putchar("\n") ;

    }

    執行結果為:從結果中可以發現,賦的值被截斷成char型資料了,也就是說只取了低八位的資料。

    從這些示例來說,putchar()這個函式不會檢查要輸出的字元的真正範圍。結論:在使用的時候需要注意,輸出變數的範圍是不是一個字元的範圍內,只有在一個字元的範圍內才能正確輸出,不然肯定會出錯。

  • 中秋節和大豐收的關聯?
  • 什麼原因導致18三體高風險?