c primer學習筆記(4 2)指標的引入

2021-06-04 05:41:22 字數 2507 閱讀 4346

4.2指標的引入

*符號把乙個識別符號宣告為指標:

vector*pvec;   pvec是乙個執行

vector

型別物件的指標

int *ip1,*ip2;   ip1和

ip2分別是指向

int型別物件的指標

乙個有效的指標必然是以下三種狀態:

1.儲存乙個特定物件的位址;

2.只想某個物件後面的乙個物件;

3. 0值

注意:避免使用未初始化的指標,懸空指標,dangerous

!!簡單的指標操作:

#include #includeusing namespace std;

int main()

解引用操作生成左值,可用來修改指標所指物件的值。

指向指標的指標:

#include using namespace std;

int main()

;int *ip=ia;   //ip points to 

兩個指標減法操作的結果是ptrdiff_t

型的資料;

相減的兩個指標必須是指向同一型別的;

ptrdiff_t是一種機器相關的型別,在

cstddef

標頭檔案裡面定義,是

signed

型別的哦!!與

size_t

不大一樣,

size_t

是unsigned

型別的。

用指標遍歷陣列:

#include using namespace std;

int main()

; for(int *pbegin=arr,*pend=arr+array_size;pbegin!=pend;pbegin++)

cout<<*pbegin<<' ';

return 0;

}

pbegin是陣列的起始位置,而

pend

是陣列的超出末端位置,相當與

vector

的end

函式,我們不能對

pend

解引用,

c++允許

pend

與其他指標比較,但不允許解引用!!未定義的操作。

習題4.18

#include using namespace std;

int main()

; for(int *pbegin=arr,*pend=arr+array_size;pbegin!=pend;pbegin++)

return 0;

}

指標和const

限定符

c++強制要求指向

const

物件的指標也必須具有

const

特性;

const double *cptr;    

將cptr

設定成指向

const

物件的指標,但是

cptr

的值可以改變,只是不可以通過

cptr

來改變const

物件,~~~~~~cptr

一經定義,就不允許修改其所指物件的值!!!

不能保證指向

const

的指標(

自以為指向

const

的指標)所指物件的值一定不可修改!!!

const指標

本身的值不能修改;

int errnumb=0;

int *const curerr=&errrnumb;   //cureer is a const pointer!!!!

指向const

物件的const

指標

const double pi=3.14159;

const double *const pi_ptr=π  //pi_ptr首先是乙個

const

指標,指向

double

型的const

物件;

習題4.20

int i=-1;

const int ic=i;

const int *pic=⁣

int *const cpi=⁣ //錯誤!cpi是指向int型的const指標,而ic是const int型的!!

//const和int const都不可以,好嚴格的說~~#

const int *const cpic=⁣ //都是const int

4 2指標的引入

1.建議避免使用指標和陣列.2.指標的定義和初始化 string ps 3.連續宣告多個指標容易導致混淆 string ps1,ps2 4.避免使用未初始化的指標 如果必須分開指標和他所指的物件,可以將指標初始化為0 還可以使用null int pi null null不是在命名空間std中定義的 ...

go學習筆記 2指標

go 語言中指標是很容易學習的,go 語言中使用指標可以更簡單的執行一些任務。接下來讓我們來一步步學習 go 語言指標。我們都知道,變數是一種使用方便的佔位符,用於引用計算機記憶體位址。go 語言的取位址符是 放到乙個變數前使用就會返回相應變數的記憶體位址。執行以上 輸出結果為 現在我們已經了解了什...

Golang學習筆記 12 指標

var ip int 指向整型 var fp float32 指向浮點型 指標使用流程 定義指標變數。為指標變數賦值。訪問指標變數中指向位址的值。例項package main import fmt func main 當乙個指標被定義後沒有分配到任何變數時,它的值為 nil。nil 指標也稱為空指標...