指標變數也是變數
指標變數只能記錄位址資料
指標變數和普通變數的使用方法完全不同
指標變數的主要作用就是用來找乙個普通
變數的只有記錄了有效位址的指標才能用來找
普通變數(指標變數的使用有前提
條件)指標變數也需要先宣告然後才能使用
宣告指標變數時需要在變數名稱前加*
當乙個指標記錄了某個儲存區的位址以後
就可以說這個指標指向這個儲存區
當乙個指標指向乙個儲存區以後就可以在
指標前使用*操作符,這種寫法就可以
表示指標指向的那個儲存區
通過指標找到的那個儲存區的型別只能是
宣告指標時所提供的型別
int *p_val;
… (讓指標指向某個儲存區)
*p_val(這個儲存區的型別只能是整數型別)
可以在一條語句裡宣告多個同型別指標,
這個時候需要在每個指標變數前
單獨加*
typedef關鍵字可以用來給資料型別起別名,
程式裡可以用別名代替原來的型別名稱
指標型別通常可以起別名
用指標型別別名宣告指標變數的時候就不
需要再加*了
沒有記錄有效位址的指標分為兩類
1.空指標裡固定記錄空位址(null),
這個位址的數值就是數字0
2.其他沒有記錄有效位址的指標都
叫做野指標
程式裡不可以出現野指標
所有指標變數必須初始化
指標初始化的時候*沒有參與賦值過程
指標指向的儲存區可以隨著程式的執行
不斷變化
這個時候可以把指標看做是儲存區的某種
身份或特徵
當乙個指標指向陣列裡第乙個儲存區之後
可以通過這個指標找到陣列裡的每個
儲存區這個時候可以使用指標代表整個陣列
位址資料只能參與以下計算過程
位址 + 整數 位址 - 整數 位址 - 位址
位址加減整數n實際加減的是n個指向
儲存區的大小
int arr[5];
0 1 2 3 4
arr arr + 2
陣列裡第乙個儲存區的位址加下標可以
得到下標對應儲存區的位址
以下兩種寫法可以用來表示陣列裡的儲存區
*(arr + num) 或 *(p_val + num)
其中arr是陣列名稱,p_val是指向
陣列裡第乙個儲存區的指標,num是下標
位址之間做減法結果是乙個整數,這個整數
表示兩個位址之間包含的指向儲存區
的個數int arr[5];
0 1 2 3 4
arr &arr[2]
&arr[2] - arr結果是2
可以使用指標作為迴圈變數依次處理陣列
裡的每個儲存區
在迴圈裡指標應該依次指向陣列裡的每個
儲存區宣告指標變數的時候可以使用const關鍵字
如果在宣告指標變數的時候把const關鍵字
寫在型別名稱前就表示不可以通過這個
指針對它指向的儲存區做賦值,但是可以
對指標本身做賦值.
如果在宣告指標變數的時候把const關鍵字
寫在指標變數名稱前就表示可以通過
這個指針對它指向的儲存區做賦值,但是
不可以對指標本身做賦值
宣告指標變數時可以使用void作為型別名稱
可以把這種指標叫做無型別指標
這種指標沒有告訴我們它指向的儲存區
是什麼型別的
不應該在這種指標前使用*操作符或者
對這種指標進行加減整數的計算
這種指標使用前需要先強制型別轉換成
有型別指標
可以在呼叫函式和被呼叫函式之間傳遞
儲存區(乙個函式把自己的儲存區
給別的函式使用)
只要把儲存區的位址傳遞給別的函式就
可以實現傳遞儲存區的效果
只能使用指標記錄別的函式傳遞過來的位址
陣列做形式引數的時候真正的形式引數其實
是乙個指標,它指向陣列裡第乙個儲存區
宣告指標形式引數的時候盡量使用const
關鍵字無型別指標經常作為形式引數使用
可以通過無型別指標形式引數把任意
型別的儲存區傳遞給被呼叫函式
可以在被呼叫函式裡把儲存區的位址當
返回值,這樣就可以從被呼叫函式
向呼叫函式傳遞儲存區
只有符合生命週期規則的儲存區才可以
在函式之間傳遞(不可以把非靜態
區域性變數儲存區的位址做返回值使用)
python學習系列 day09
一 圖形介面 1 tkinter 2 turtle 二 網路程式設計 1 tcp程式設計 1 客戶端 import socket s socket.socket socket.af inet,socket.sock stream af inet表示利用的ipv4,af inet6表示用ipv6。so...
Day09 學習CSS基礎
在html的頭部用標籤寫css樣式,裡面定義選擇器定義不同的屬性值 一種選擇器 選擇所以h1標籤 color顏色屬性為red h1style rel stylesheet href css style.css style color yellow 標題h1 哪種方式生效根據就近原則,先執行的會被後執...
python學習筆記day09 函式
函式的定義和函式的呼叫不是一回事,程式執行時,遇到定義函式,只會執行定義函式名處,裡面的函式體這個時候是不會執行的 只有到呼叫函式處才會執行裡面的函式體 沒有返回值 無 return 返回none 只有 return 返回none return none 返回none 有返回值 可以返回任意資料型別...