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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

C++ 学习之旅(7)——指针pointer

發布時間:2023/12/4 c/c++ 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ 学习之旅(7)——指针pointer 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開門見山,如果把計算機的內存空間比作是一排房子,那指針就是房門號。指針實際上就是一個用來存儲內存地址的整數,與類型沒有關系,我可以定義一個void類型的指針:

#include <iostream>int main() {int var = 8;void* ptr = &var;std::cin.get(); //設置斷點 }

設置斷點后Debug可以看到:


到Memory中輸入ptr的值可以看到:


在4個字節的內存空間中,存放了var的值8。

既然指針是一個數,那它應該也有地址呀,指針的指針?當然有:

#include <iostream>int main() {int var = 8;void* ptr = &var;void* ptr1 = &ptr;std::cin.get(); }



我們發現紅線的4個字節存放了指針的值,而它剛好就在存放var值8(藍線)的8個字節前。

如果我們想通過指針ptr去給var賦值,那類型就不能為void,否則會報錯:

#include <iostream>int main() {int var = 8;int* ptr = &var;*ptr = 10;std::cin.get(); }


指針只說明了內存地址,并不包含內存塊大小的信息,如果我們想使用指定大小的內存,可以這樣:

#include <iostream>int main() {char* buffer = new char[8];memset(buffer, 1, 8);std::cin.get(); }

輸入buffer的值,可以看到8個字節的內存空間,且被置為1:

總結

以上是生活随笔為你收集整理的C++ 学习之旅(7)——指针pointer的全部內容,希望文章能夠幫你解決所遇到的問題。

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