C語言基礎之指標

2021-08-04 14:02:42 字數 1020 閱讀 8291

一、指標

1、指標就是存放位址的變數。乙個指標變數占用4個位元組。

int* pa;//int * pa;

2、指標型別、取位址、解引用

(1)指標型別

int* pa;//pa,*pa

int *pa;

int * pa;

語義:pa是乙個指標,該指標指向乙個int型的資料,即pa存放乙個int型資料的位址。

int* pa,pb;//pa是int*,pb是int

int *pa,*pb

(2)取位址——&

int a=5;

int* pa=&a;//pa指向a,a是pa的目標,pa是a的指標,pa存放著a的位址。*pa

(3)解引用(取目標)——*

*pa=100;//將100賦值給pa的目標,即賦值給a,pa=100;

3、指標的用法//int add(int* p);

(1)將指標作為函式的引數,傳遞變數的位址,進而在多個函式中訪問相同的記憶體資料。

(2)指標也可以作為函式的返回值,但是不要返回指向區域性變數的指標。因為函式返回以後,其區域性變數所占用的記憶體將隨函式棧一起被釋放,所得到的指標為野指標。

int add()

4、常量、常量指標和指標常量

(1)const可以修飾普通變數,該變數就會被當做常量來處理,即其值一經過初始化就不能再被修改。

(2)常量指標:指向常量的指標,即無法通過該指標修改其目標。

const int* p;

int const* p;

(3)指標常量:指標型的常量,即無法修改其值的指標。

int* const p;

const int* const p;//常量指標常量,p本身不能修改,其目標亦不能修改。

//const的用法

//遊戲、不想被其他人修改自己的**,要用const

#include

int main()

C語言基礎之指標續

一 指標 1 指標與陣列 include int main int p 下面兩句其實是等價的,陣列名本身就代表陣列位址 p ages p ages 0 printf p p n p 指標指向陣列首元素,因此列印的是陣列位址 printf p d n p 指標指向陣列首位址,其指向位址中的值就是age...

C語言基礎之指標運算

指標的加法 define crt secure no warnings include int main 宣告乙個char型別的陣列 char p ac 指標p為char 型別 printf p p n p printf p 1 p n p 1 輸出指標p 1的結果 int ai 宣告乙個int型別...

C語言基礎 指標基礎

最小儲存單位 bit 即 0 1 基本儲存單位 byte 1byte 8bit 注 計算機訪問的資料是byte位數定義變數 分配儲存空間 引用變數 通過變數名引用變數的內容即變數空間的首位址 為常量,即 變數名 專門儲存位址常量的變數型別 變數名所有指標變數均分配4byte的儲存空間 與其他變數相同...