C語言 指標初入(一)!

2021-10-07 01:18:01 字數 2009 閱讀 1021

2.指標變數的定義

3.指標變數的賦值

4.開闢動態儲存單元

5.指標運算子

指標嘛?這玩意,還真挺難!每次程式設計序遇到指標時……

指標,是c語言的一種派生型別,指標變數儲存的值是某**記憶體位址

①使用指標可以更加靈活地組織具有複雜關係的資料,簡化操作過程,提高程式的執行效率。

①可以通過其儲存位址間接訪問變數中的資料

【語法格式】:型別識別符號 * 識別符號

例如:

int

*p;

通過位址符&

int

*p;//定義指標變數

p=&a;

//把變數 a 的位址賦給指標變數 p,表示指標 p 指向變數 a

float a,

*p=&a;

或者float a;

float

*p=&a;

//指標 p 與變數 a 的型別必須一致

int i;

int*p1=

&i,*p2;

p2=p1;

p=

null

;//當指標被賦值為null時,指標不指向任何資料。

【語法格式】new 型別名

【語法格式】new 型別名[元素個數]

【語法格式】delete 變數名

【語法格式】delete 變數名

int i=7,

*p;double

*q;p=new int

[i+3];

//在記憶體中分配10個int型別的連續儲存單元塊

q=new double

;//在記憶體中分配乙個double型別儲存單元塊

……delete q;

//釋放double單元塊

delete [

]p;//釋放10個int型別連續儲存單元塊

int i=

123,j,

*p;p=

&i;

j=

*p;//指標間接賦值,*p等價於變數ij=*

&i;//直接賦值,*&i等價於變數i

// * 和 & 都是單目運算子,具有相同的優先順序,結合方向自右向左

p=

&i;printf

("%d\n"

,*p);j=

(*p)++;

//括號不能省略

// * 和 ++ 均為單目運算子,結合方向自右向左,因此*p++ <=> *(p++)

int i=

1,j=2,

*p;p=

&i;*p+

=100;p=

&j;(

*p)--

;// *p 方式訪問變數值是間接的,比直接訪問乙個變數更加費時。

通過改變指標的指向,增加程式設計的靈活性,使**更加簡潔、高效。

*p <=

> i <=

>*&i

&*p <=

>

&i <=

> p

int

*p;p=new int

;//開闢一塊動態儲存區,把其首位址賦值給p

*p=789

;//指標運算子「 * 」是單目運算子,乘法運算子「 * 」 是雙目運算子

(未完待續……)

初入江湖 一

程式設計師的 就如同武林人士的武功一樣,那麼我們在開始修習 前先展示一段。初入江湖的少俠們請先以觀賞為主,後續我們慢慢到來!include 引用 easyx 圖形庫 include include mci 庫標頭檔案 pragma comment lib,winmm.lib intmain void...

c語言初學 初涉指標

指標 指標是乙個 4 bytes integers,儲存的是記憶體位址,1.定義 型別 變數名 2.使用const宣告指標變數 1 指向const的指標變數 int const p 等效於 const int p 該類指標變數指向的記憶體空間的內容是不可變的。eg.const int a 1 con...

C語言指標詳解(初解)

以下為本人的一些學習心得,有錯誤希望大家能指出來 在初步了解指標之前,我們先看一下指標的定義 來自 c語言入門經典第五版 可以儲存位址的變數叫做指標 pointers 我們都知道在計算機中,程式都是儲存在記憶體中的,cpu通過位址對其進行讀取和寫入資料。平時所用到的變數名,都只是一層包裝,是為了方便...