日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++需要输出一个参数的地址时可能达不到预期的效果

發布時間:2025/3/15 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++需要输出一个参数的地址时可能达不到预期的效果 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C++需要輸出一個參數的地址時可能達不到預期的效果——學習c++

在c++學習中,

#include <iostream> int main() {const unsigned short ITEMS = 5;int intarray[ITEMS] = {67,68,69,70,71};char chararray[ITEMS] = {'c','h','e','n','g'};int *intPtr = intarray;char*charPtr = chararray;std::cout<< "整型數據輸出:\n";for(int i = 0 ;i < ITEMS; i++){std::cout << *intPtr << " at " << intPtr<< '\n';intPtr++;}std::cout << "字符型數據輸出:\n";for(i = 0; i < ITEMS ; i++){ std::cout << *charPtr << " at " <<(int*)charPtr<<'\n';charPtr++;}return 0;}

輸出結果為

其中(int*)charPtr 也可以換成reinterpret_cast< unsigned long>(charPtr)等等,都可以輸出正確的字符型數組地址,但是如果把int*)charPtr 替換成charPtr就不行,輸出出來的內容與預期不符(如下圖)


其中整型指針輸出地址沒有變化,而字符型指針輸出的地址是亂碼。可能是c++中,使用cout輸出地址時,每個指針提前定義好類型了,然后一直按照此類型輸出。c語言中 ,用printf函數輸出時還需要重新打出輸出時的類型(如%c,%d等等),而c++中只有第一步定義指針類型,在輸出指針時沒有像c一樣再去考量輸出的類型。(int*)charPtr 就是強制把字符型轉換為整型,把地址以整型數據輸出。

總結

以上是生活随笔為你收集整理的C++需要输出一个参数的地址时可能达不到预期的效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。