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