(本文不討論制表符與空格縮進問題)
編程過程中,我們常常用多個空格或制表符分隔兩個字符串,那麼這兩個在顯示效果上有什麼區別呢?
比較如下兩行代碼的輸出效果
代碼1:
printf();
代碼2:
printf(); );
代碼1輸出結果:
代碼2輸出結果:
很明顯可以看到代碼1輸出結果中右側的兩個1是上下對齊的,而代碼2輸出結果中右側的兩個1上下不對齊,代碼2輸出結果不對其的原因很容易理解,但是為什麼代碼1輸出結果中的兩個1會對齊呢?
這牽扯到制表符\t到底跳過幾個空格的問題。
\t到底跳過幾個空格是沒有規定,也沒有標准的,每個輸出設備會規定自己設備上\t會定位到某個整數單位倍數處,比如有的設備規定\t定位到8字符整數倍數處,假定某個字符串在制表符\t的前面有n個字符,那麼\t將跳過8-n%8個空格。