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

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

如圖,關于char* 以及 char數組的問題,求指點

如圖,關于char* 以及 char數組的問題,求指點

C C++
一只甜甜圈 2023-03-15 22:18:02
1,我定義了char *Pstr,這個Pstr明顯是個指針,為何輸出coutf<<Pstr<<endl;結果不是地址,而是整個字符串??2,當后面使用int的時候cout<<arr<<endl;結果卻是地址????結合1和2兩問題,int和char在這里有何不同??3,我想用sizeof()求“hello”的大小,怎么求?4,定義char str[]={'a','b','c','d','e','f','g','\0'}數組的時候,cout<<str<<endl;為何結果是整個字符串?不是地址???
查看完整描述

3 回答

?
侃侃爾雅

TA貢獻1801條經驗 獲得超16個贊

  1. 運算符重載可以做任何事情,沒有任何規則所只要是地址打印出就是地址。而且char*是特殊的,從來沒有在哪輸出過地址

  2. 運算符重載,不是int/char不同,而是重載后int*和char*不同

  3. sizeof("hello"),這是唯一的辦法,賦值給指針后只能用strlen,不能用sizeof

  4. 同樣,不要總想著參數是地址,輸出也是地址,如果這樣,高級語言就太無用了


查看完整回答
反對 回復 2023-03-18
?
肥皂起泡泡

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

1.因為 iostream內部 cin cout 對char* 做了特殊處理.......因為c/c++ 輸入輸出字符串通常要用到char*
如果直接輸出地址,就要用別的方法來輸出字符串了 就不方便了.....所以直接輸出地址 那里放著的字符串......

3、sizeof("hello");得到 字符串實際長度 + \0 占的一個字節
一般用strlen函數.......

同 1、2,str數組名 是 char* 地址

查看完整回答
反對 回復 2023-03-18
?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

1、這是cout(const char *)函數的定義。為方便處理字符串。
2、字符串是數組,int只是一個數;
3、include <string.h>
4、同1.

查看完整回答
反對 回復 2023-03-18
  • 3 回答
  • 0 關注
  • 142 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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