為什么要用單引號a輸出是97雙引號a是64
#include <stdio.h>
int main()
{
? ? char c = "a";
? ? int n = ? ?c; ? ? //將c賦值給n
? ? float f = ? ?c; ? //將c賦值給f
? ? double d = ? ? c; //將c賦值給d
? ? printf("%d\n",n);
? ? printf("%f\n",f);
? ? printf("%lf\n",d);
? ? return 0; ? ?
}
2017-08-08
單引號括起來為字符,對應(yīng)值為a的ASCII值,雙引號括起來為字符串,char c = "a";這樣是不合法的,通常我們是這樣來定義的,char *c = "a";或者開一個buffer來存放字符串,char buff[2] = "a";
再補(bǔ)充一點(diǎn),C語言中,字符串并不是一種數(shù)據(jù)類型,準(zhǔn)確來講它是數(shù)組,字符數(shù)組,結(jié)束符為 \0,比如,“abc”,它的長度是多大呢,答案是4個字節(jié),它在內(nèi)存是這么存的:{‘a(chǎn)’,'b', 'c', '\0'},所以是4個字節(jié)
2017-08-08
單引號代表的是一個字符,也就是輸出的字符a的ASCALL碼,雙引號中代表a是一個字符串,這個輸出應(yīng)該是有其特定的計算方法或者亂碼,至少在我的機(jī)子上運(yùn)行的是44
2017-08-08
用雙引號表示字符串,字符串包含兩個字符,a和\0,所以輸出不一樣