3個月c++初級工程師
例如:一周掌握c++入門知識
1、 指標
指標->位址
維基百科上的定義:計算機中的記憶體都是編址的,每個位址都有乙個符號,就像家庭位址或者ip位址一樣。指標,是乙個無符號整數(unsigned int),它是乙個以當前系統定址範圍為取值範圍的整數。宣告指標和宣告乙個無符號整數實質上並無區別。
我的理解其實就是指標和int,long,double,一樣都是一種資料型別,只不過這種型別專門儲存位址。這也就有了標題上寫的,指標指向位址。實際位址記憶體圖如下圖所示:
如何取位址
對於c++變數來說,&是取位址符,舉個例子int a=10, a的位址為0x10001,來說&a得到的就是0x10001。
指標如何宣告
介紹完如何取位址之後,我們現在正是介紹指標的宣告與使用。
指標型別符 *指標名=&變數;
這裡我們還舉上面那個例子,
int *p=&a;//這樣乙個指標變數就生命好了
指標如何使用
介紹完如何宣告指標變數之後,我們現在正是介紹指標的使用。
這裡我們還舉上面那個例子,
int *p=&a;
想要使用我們需要使用乙個新的符號:*
這個符號的作用是解引用,拿出我們指標指向那塊記憶體位址所存的資料,取出格式就是我們宣告的指標型別,舉個例子。
就是如果我們cout指標在記憶體的占用
在不同的系統下指標的大小不同:
32位的作業系統中指標佔4個位元組
64位的作業系統中指標佔8個位元組
空指標的概念
空指標(英語:null pointer)是乙個已宣告但並未指向乙個有效物件的指標,許多程式利用空指標來表示某些特定條件,例如未知長度陣列的結尾或某些無法執行的操作。在可選擇型別(optional type)的程式語言中,空指標通常可以跟可為null的型別(nullable types)和空值(nothing value)進行比較。
常常以int *p=null;
這種型別出現。
野指標的概念
野指標:未被初始化的指標,野指標所導致的錯誤和迷途指標非常相似,但野指標的問題更容易被發現。
常量指標
如下宣告方式的指標叫做常量指標。
const
int*p=
&a;
特點:指標的指向可以修改,但是指標指向的值不可以改。
指標常量
如下宣告方式的指標叫做指標常量。
int
*const p=
&a;
特點:指標的指向不可以更改,指標指向的值可以更改
常量指標常量
如下宣告方式的指標叫做指標常量。
const
int*
const p=
&a;
特點:指標的指向不可以更改,指標指向的值也不可以更改
指標使用的幾個原則:
第一:無法確定是否是空指標前一定要判斷
第二:哪個(也就是類)申請的,哪個釋放,同時釋放的時候需要指向nullptr,否則就是野指標
第三:後面衍生出一種叫智慧型指標的(不用釋放,自動釋放)
第四:指標申請了記憶體一定要釋放,哪個申請哪個釋放
參考部落格
對指標變數的淺顯理解
轉換 變數名其實是乙個符號位址,而變數的記憶體位址就是變數的實體地址 也叫指標 程式編輯完後,通過編譯器,將符號位址 變數名 轉化為變數的實體地址,才能實現對變數 記憶體裡 的資料進行操作。二 指標變數 p 作用 是用來存放普通變數位址 實體地址 的變數。換句話說,指標變數裡面的值就是位址。p 這是...
C 指標的學習理解
指標是乙個記憶體位址,而位址是整數,但指標不是整數。指標變數一般沒有 除非是指向指標的指標。指標變數前的操作符 生成它所指向的變數。指標變數的值是指標所指向變數的記憶體位址 和 指標變數 的記憶體位址相同 指標變數 的值就是指標所指向變數的值,通過改變 指標變數 的值可以操作所指向變數的值。如果把乙...
C 之指標學習
指標本身就是乙個物件,允許對指標賦值和拷貝,而且在指標的生命週期內它可以指向幾個不同的物件 指標無須在定義時賦初值。和其他內建型別一樣,在塊作用域內定義的指標如果沒有初始化,也將擁有乙個不確定的值。include using namespace std intmain here are the va...