char s1 與 char s2 的區別

2021-06-21 06:19:24 字數 674 閱讀 1579

今天看到如下**

char str1       = "abc";

char str2 = "abc";

const char str3 = "abc";

const char str4 = "abc";

const char* str5 = "abc";

const char* str6 = "abc";

cout << boolalpha << ( str1==str2 ) << endl; // 輸出什麼?

cout << boolalpha << ( str3==str4 ) << endl; // 輸出什麼?

cout << boolalpha << ( str5==str6 ) << endl; // 輸出什麼?

動手試了下,發現結果是:

false

false

true

前兩個false不難理解,除錯時發現str5 與 str6 的位址是一樣的。去網上搜了搜,發現原來

如果同一檔案中char *s1與 char *s2 的值是一樣的,那麼系統會自動優化,將它們存在相同記憶體,

即s1 與 s2 的值會相等,但如果用來比較兩字串是否相等,還是用 strcmp 比較好。

char s1和char s2 的區別

對於下面的 說法正確的是 char s1 hello world char s2 hello world s1 2 e 1 s2 2 e 2 s1 2 e 3 s2 2 e 4 語句2 4是非法的 語句3 4是非法的 語句1 3是非法的 僅語句1 是非法的 僅語句2 是非法的 語句1 4都是合法的 ...

小結char s 與char s 的區別

char s1 hello char s2 hello 區別所在 char s1 的s1,而指標是指向一塊記憶體區域,它指向的記憶體區域的大小可以隨時改變,而且當指標指向常量字串時,它的內容是不可以被修改的,否則在執行時會報錯。char s2的s2 是陣列對應著一塊記憶體區域,其位址和容量在生命期裡...

C語言中char s 與char s的不同

首先看一下c語言中下面兩個語句的不同 char s 10 abcde char s abcde 兩者不同的關鍵點如下 1 陣列 char s 10 abcde s是乙個陣列 sizeof s 10 bytes a與 a是一樣的 abcde儲存在記憶體的棧空間中 char s 10 abcde s h...