char animal[20] = "bear";double bubble = 3.2;char *ps;double *p;為什么可以直接ps=animal,并且cout<<ps就是ps指針指向的字符串而不是輸出地址。而double 類型卻需要p = &bubble,并且 cout<<p 是地址,而不是double類數值?
1 回答

滄海一幻覺
TA貢獻1824條經驗 獲得超5個贊
數組名的值是個指針常量,也就是數組第一個元素的地址,所以animal的類型是char *,可以直接ps=animal。而double 類型是個變量,要賦值給double *的指針變量需要取double 類型變量的地址,所以double 類型需要p = &bubble。cout標準輸出對char *是按字符串來解析,所以cout<<ps輸出的是字符串,cout標準輸出對其他指針類型默認是按地址輸出,所以cout<<p輸出的是地址
- 1 回答
- 0 關注
- 622 瀏覽
添加回答
舉報
0/150
提交
取消