void foo(char str[100]) { cout<<sizeof(str)<<endl; } int main () { char str[]="\b\0"; char *p =str; int n=10; void *x = malloc(100); cout << sizeof(str)<<endl; //3數組內只有三個字符 cout <<sizeof(p)<<endl; //4---指針均爲四個字節 cout<<sizeof(n)<<endl; //4----int型爲四個字節 cout<<sizeof(x)<<endl; //4----指針爲四個字節 foo(str); //4 return 0; }
(1)注意字符串時,後面隱藏着一個'\0'字符。數組
並且轉義字符算一個字符來計算,轉移字符以下圖所示:函數
轉義字符
|
意義
|
ASCII碼值(十進制)
|
\a
|
響鈴(BEL)
|
007
|
\b
|
退格(BS) ,將當前位置移到前一列
|
008
|
\f
|
換頁(FF),將當前位置移到下頁開頭
|
012
|
\n
|
換行(LF) ,將當前位置移到下一行開頭
|
010
|
\r
|
回車(CR) ,將當前位置移到本行開頭
|
013
|
\t
|
水平製表(HT) (跳到下一個TAB位置)
|
009
|
\v
|
垂直製表(VT)
|
011
|
\\
|
表明一個反斜線字符''\'
|
092
|
\'
|
表明一個單引號(撇號)字符
|
039
|
\"
|
表明一個雙引號字符
|
034
|
\? |
表明一個問號 |
063 |
\0
|
空字符(NULL)
|
000
|
\ooo
|
1到3位八進制數所表明的任意字符
|
三位八進制
|
\xhh
|
1到2位十六進制所表明的任意字符
|
二位十六進制
|