C C 4 C與C 中字串的型別差異

2021-07-02 19:13:13 字數 622 閱讀 1313

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字串...