所有的字串常量都被放在全域性區的靜態儲存區
這歌筆記只為說明乙個問題
char
str1
="abcd"
;
char
str2
="abcd"
;
const
char
str3
="abcd"
;//被const修飾的陣列,如果是區域性變數是存放在棧上的唯讀陣列,不能修改
const
char
str4
="abcd"
;
const
char
str5
="abcd"
;
const
char
str6
="abcd"
;
char
*str7
="abcd"
;
char
*str8
="abcd"
;
cout
<<(
str1
==str2
)<<
endl
;//0
cout
<<(
str3
==str4
)<<
endl
;//0
cout
<<(
str5
==str6
)<<
endl
;//1
cout
<<(
str7
==str8
)<<
endl
;//1
str1、str2、str3、str4是陣列變數,他們有各自的儲存空間,字元陣列作為區域性變數存放在棧上。
str5、str6、str7、str8是指標,「abcd是存放在靜態儲存區裡面而且是全域性的,他們指向同一塊記憶體空間,所以位址是一樣的」
字元陣列和字元指標
字元陣列是一段記憶體空間 字元指標是乙個位址,指向一串字元。char str abcd char str abcd 字元陣列是一段記憶體空間 字元指標是乙個位址,指向一串字元 char str abcd char str abcd 上面這兩跳複製語句很相似,其實根本就不是一碼事。對於兩個 abcd ...
字元指標和字元陣列
1.字元指標可以指向乙個字串。我們可以用字串常量對字元指標進行初始化。例如,有說明語句 char str this is a string.是對字元指標進行初始化。此時,字元指標指向的是乙個字串常量的首位址,即指向字串的首位址。這裡要注意字元指標與字元陣列之間的區別。例如,有說明語句 char st...
字元陣列和字元指標
1.在函式getmem棧內定義個陣列,將位址return給main函式的指標str eg char p hello world char getmemory void char p hello world return p void test void char str null str getme...