c/c++中的每乙個文字元(常量)都有一種與其相關的型別資訊。
數字字元(例如10)會用int做為它的型別。即sizeof(10)與sizeof(int)是相等的。
但是,文字字元(例如'a')會有不同型別。在c中,文字字元被當作int型別,但是在c++中,會被當作是char型別,即c++中sizeof('a')與sizeof(char)相等。
int main()
上面程式的執行結果:
c程式: sizeof(『a』) = 4 sizeof(char) = 1
c++程式: sizeof(『a』) = 1 sizeof(char) = 1
c++以此來實現函式過載。下面的這個例子可以更清晰的說明這個。
void foo(char c)
void foo(int i)
int main()
執行結果:
from foo: char
可以看到,編譯器呼叫的函式是
void foo(char);
因為『a』是char型別。
c c中c串和字串
是在用c串處理字串問題時遇到 char str不是變數無法賦值 錯誤時,仔細複習了一下c裡的c串和字串。1.字元陣列 char str max for int i 0 istr i i 0 轉成char型 可以見到,char max 陣列和其他的陣列如 int max 的操作是一致的。具體來說,就是...
c 中的字串型別變數
初學c 記錄一下自己的學習心得。c 比c多了一種變數 字串型別變數。使用string類 並非c 的基本型別,而是標準庫中的乙個類 定義字串變數。include include using namespace std int main a sizeof string b sizeof name cou...
C 與C 中字串的區別
string類在c 與c 中都是一種經常使用的型別,對字串的操作比對字元陣列的操作方便很多,今天在這裡記錄一下c 和c 中的string的區別與注意事項。在c 中,string的每乙個字串的結尾都是字元 0 因此字串的占用的記憶體比表面上使用的位元組數多一。在c 中需要注意的是,c 將const字串...