我的代碼是這樣的:奇怪結果(' 210`)打印字符數組的末尾時
int main(int argc, char *argv[])
{
char ca[] = {'0'};
cout << *ca << endl;
cout << *(ca+1) << endl;
cout << ca[1] << endl;
cout << (char)(0) << endl;
return 0;
}
結果是這樣的:
0
\210
\210
^@
從this thread,我知道即^@
實際上與\0
相同。但是,\210
似乎不是因爲當我使用hexdump
來查看結果。
bash-3.2$ ./playground | hexdump -C
00000000 30 0a 88 0a 88 0a 00 0a |0.......|
00000008
可以清楚地看出,\210
是88
而不是00
。
據我所知,ca+1
應指向null terminator
,這是\0
。但爲什麼cout << *(ca+1) << endl;
結果給我\210
?
嘗試'char ca [] =「0」;',然後閱讀aaaaaa123456789的答案爲什麼它的工作。 – WhozCraig 2013-02-10 08:30:43