在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/C/ C語言中單引號和雙引號的區(qū)別

C語言中單引號和雙引號的區(qū)別

在C中

void main()
{
    char a = 'A';
    printf("%d\n",a);
}

輸出結果為65,是A在ASCII中的十進制表示。

void main()
{
    //這里用了雙引號
    char a = "A";
    printf("%d\n",a);
}

輸出結果為41,我很奇怪,問什么不是65?
第二段代碼在編譯的時候產(chǎn)生了警告:warning: initialization makes integer from pointer without a cast [enabled by default]

回答
編輯回答
脾氣硬

前面你的類型是 char,說明是一個字符,C++/C里面操作對象有字符
如果想表示一個字符串的話
用const char * a = "A";

2017年5月30日 08:34
編輯回答
悶騷型

雙引號“”是字符串,以\0結尾。
單引號''是字符。

char本身只能保存一個字符,所以語句 char a = "A";
你用的編譯器雖然通過,但是也報了警告。警告的原因是數(shù)據(jù)類型需要強制轉(zhuǎn)換,你用編譯器跟進去看看,41可能就是字符串"A"的地址。

PS:@任衛(wèi) 補充內(nèi)容:41是字符串地址的低位。

2017年7月17日 17:59