char *Str;Str="abcdef";和char Str[]="abcdef";有什么區別???char Str[]="abcdef";是可以的,書上這么寫的,編譯也通過了。
3 回答

阿波羅的戰車
TA貢獻1862條經驗 獲得超6個贊
首先第一個指針形式的str指向一個字符串,這樣指向以后就不能通過str對abcdef這個字符串修改了,但是你可以給str用別的字符串再賦值,這樣他就指向了別的字符串,但是一旦指向某個字符串,就不能通過這個指針對字符串修改了。
第二種數組形式的str,其實數組名就是指針常量,也就是說一旦他初始化了,它指向的地址就固定了,就不能再用別的字符串賦值了(這就不同于指針形式的str),但是這個地址里放什么是可以改變的(指針形式的就不能改變了),比如說初始化之后在通過cin>>str改變數組的內容還是沒有問題的。
char Str[]="abcdef";這種寫法是沒有問題的,這樣不寫數組大小但必須要對其初始化,如果沒初始化就必須聲明數組大小。
明白?
- 3 回答
- 0 關注
- 434 瀏覽
添加回答
舉報
0/150
提交
取消