C語言 指標介紹

2021-10-22 16:55:27 字數 1530 閱讀 9818

本文只是簡單的介紹了指標的一些概念,如果想更詳細的了解指標的知識點可以**我的另外兩篇部落格。

指標基礎:

指標高階:

①表示一些複雜的資料結構;②快速傳遞資料;③使函式返回乙個以上的值;

④直接訪問硬體;⑤能方便處理字串;⑥是理解物件導向語言中引用的基礎;

總結:指標是c語言的靈魂

指標是乙個變數,用來存放位址的變數。

記憶體單元的編號

從零開始的非負整數

範圍: 4g

★指標:

①指標就是位址,位址就是指標

②指標變數是存放位址的變數

③指標和指標變數是兩個不同的概念

④敘述時通常把指標變數簡稱為指標,實際它們含義不一樣

⑤指標的本質就是乙個操作受限的非負整數

指標就是位址,位址就是指標;

指標變數是乙個變數,它儲存了基本型別變數的位址。

如果指標變數p儲存了變數a的位址,那麼稱作p指向了a,*p 就是變數a。

如果p是乙個指標變數,*p 表示了以 p 的內容為位址的變數,就是p指向的變數。

這裡列舉乙個簡單的示例:

#include

intmain()

(1)基本型別:int 、short、long、float 、double、char

如 int *p;//表示定義乙個指標,這個指標指向整型變數,這個指標將存放的是整型變數的位址。

(2)陣列指標:指標指向乙個陣列

int (*a)[10]; //表示指標指向乙個int型的長度為10的陣列

(3)函式指標:指標指向乙個函式

void (*a)(); //表示指標指向乙個無引數無返回值的函式

(1)指標+或者-乙個數,表示指標加減這個數的型別所佔記憶體的整數倍

如 int *p=a;

p=p+2; // 在vc6.0裡面,實際上p加了2 * 4=8

(2)指標減去乙個指標,表示兩個指標之間所差的記憶體單元或者元素個數,兩個指標相加沒有意義

(3)關係運算,如果定義了兩個指標變數p和q,並且都已經初始化了,

如果p==q,則表示p和q指向同乙個位址

p>q,則表示p指向高位址而q指向低位址

也經常拿p和null做比較,用來表示指標當前的狀態,這在資料結構中應用非常廣泛,不如說鍊錶的查詢等等

指標和陣列關係密切,陣列可以通過指標去引用,陣列可以存放指標,陣列也可以由指標去訪問,指標也能存放陣列的位址。

如何通過被調函式修改主調函式普通變數的值?示例:

#include

< stdio.h>

void swap (

int*p,

int*q)

//形參的名字是p和q,接收實參資料的是p和q,而不是*p和*q

intmain

(void

)

執行結果:

a=2,b=1

C語言指標函式和函式指標詳細介紹

原文在此 指標與函式 另外,附上一段 learn c the hard way 18章節的 include include include include our old friend die from ex17.void die const char message else exit 1 a t...

C語言指標函式和函式指標詳細介紹

當乙個函式宣告其返回值為乙個指標時,實際上就是返回乙個位址給呼叫函式,以用於需要指標或位址的表示式中。格式 型別說明符 函式名 引數 當然了,由於返回的是乙個位址,所以型別說明符一般都是int。例如 int getdate int aaa int,int 函式返回的是乙個位址值,經常使用在返回陣列的...

C指標介紹

參考 舉例 int p 整型變數 int p 整型型別的指標 int p 3 整型型別的指標陣列 int p 3 指向整型陣列的指標 int p 指向整型指標的指標 int p int 函式,入參是整型數,返回值是整型數 int p int 函式指標,指向函式的指標,入參是整型,返回值是整型 int...