中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C之單引號和雙引號(十三)

發布時間:2020-07-06 13:02:58 來源:網絡 閱讀:2881 作者:上帝之子521 欄目:編程語言

        在 C 語言中,我們會經常使用到單引號和雙引號那么單引號用來表示字符字面量,雙引號是用來表示字符串字面量

        'a' 表示字符字面量,在內存中占1個字節; 'a' + 1表示 'a' 的 ASCII 碼加1,結果為 'b'。

        "a" 表示字符串字面量,在內存中占2個字節;"a" + 1表示指針運算,結果指向"a"結束符'\0'。

        字符字面量在 C 語言中國被編譯為對應的 ASCII 碼,字符串字面量被編譯為對應的內存地址。printf 的第一個參數被當成字符串內存地址,內存的低地址空間不能在程序中隨意訪問。下圖表示三種寫法的地址

C之單引號和雙引號(十三)

        我們接下來看個示例代碼,代碼如下:

#include <stdio.h>

int main()
{

    char c = " ";
    
    while( (c == "\t") || (c == " ") || (c == "\n") )
    {
        scanf("%c", &c);
    }
    
    return 0;
}

        我們這段代碼是想實現當用戶輸入 tab 鍵、空格或者回車時,程序繼續循環執行。當用戶隨便輸入字母或者數字什么的,程序就執行完畢。我們來編譯下看看結果是否如此

C之單引號和雙引號(十三)

        并沒有實現這個功能,顯然編譯出了3個警告,而且我們運行后程序仿佛沒執行while循環。我們再來仔細分析下這個程序,我們上面 char c = " "; 相當于 char c = "string"; 程序編譯后字符串"string"的內存地址被賦值給變量 c;內存地址占 4 個字節,而變量 c 只占1個字節;由于類型不同,賦值后產生截斷。那么我們如何解決這個問題呢?只需將所有的雙引號換成單引號即可,我們再次編譯,得到結果如下:

C之單引號和雙引號(十三)

            我們看到程序沒有編譯錯誤,運行后效果也是我們所期望的。今天我們學習了單引號和雙引號的相關知識,總結如下:1、單引號括起來的單個字符代表整數,雙引號括起來的字符代表字符指針;2、C 編譯器接受字符和字符串的比較但無任何意義,允許字符串對字符變量賦值,只能得到錯誤后面我們會繼續對 C 語言的學習。


         歡迎大家一起來學習 C 語言,可以加我QQ:243343083

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江源县| 兰溪市| 武定县| 汝城县| 陕西省| 宜都市| 当雄县| 大英县| 兰溪市| 北碚区| 广宗县| 沅江市| 宁河县| 厦门市| 安龙县| 化德县| 卫辉市| 遂溪县| 醴陵市| 民勤县| 广平县| 通州区| 永年县| 五常市| 健康| 本溪市| 大洼县| 通化县| 永嘉县| 黑山县| 吴旗县| 广州市| 嘉善县| 西藏| 仁寿县| 建湖县| 西和县| 辰溪县| 藁城市| 方城县| 临潭县|