亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

char *Str;Str="abcdef";和char Str[]="abcdef";

char *Str;Str="abcdef";和char Str[]="abcdef";

PHP C
慕娘9325324 2022-02-24 19:15:36
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";這種寫法是沒有問題的,這樣不寫數組大小但必須要對其初始化,如果沒初始化就必須聲明數組大小。
明白?

查看完整回答
反對 回復 2022-02-27
?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

char *Str;Str="abcdef";
Str指向常量區,指向的內容不能改了
char Str[]="abcdef";
在棧區,可以改變

查看完整回答
反對 回復 2022-02-27
?
長風秋雁

TA貢獻1757條經驗 獲得超7個贊

第一個是定義的指針可以不加{},
第二個是字符串要加{}你所述的char Str[]="abcdef";是錯誤的表示方式。

查看完整回答
反對 回復 2022-02-27
  • 3 回答
  • 0 關注
  • 434 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號