c 之指標用法總結

2021-06-26 07:26:44 字數 1332 閱讀 4011

一、介紹一些基本概念

1、乙個變數的位址即為乙個變數的指標

2、變數的訪問的兩種方式直接訪問和間接訪問

3、運算子

* 符號表示指向,指標運算子(或間接訪問運算子)*p為指標變數p所指向的儲存單元

& 取位址運算子 &a為變數a的位址

二、指標的一些定義和用法

1、型別名 * 變數名; //定義指標變數指向某個型別

int *p; 

2、型別名 *變數名[n];  //定義指標陣列,由n個指標元素構成的陣列

int *p[n];

3、型別名 (*變數名)[n];//定義指向含n個元素的一維陣列的指標變數

int (*p)[n];

4、型別名 * 函式名();//返回值為指標的函式

int *max();

5、型別名(*變數名)(); //指向函式的指標

int (*p) ();

#includeint main()

{int max(int x,int y); //函式宣告

int (*p)(int,int);//定義指向函式的指標

int a ,b ,m;

p=max;

cin>>a>>b;

m=p(a,b);

cout<<"max="《其實就是用(*p)取代了max

6、型別名* *變數名;//指向指標的指標變數

int * *p; // p是乙個指標-->指向了乙個指向int型變數的指標。

三、特別的「別名"應用

1、指向陣列的指標,即用指標名取代陣列名

引用陣列元素的方式:

下標法 a[i]

指標法 *(a+i)或*(p+i)

2、指標作為函式的引數,其實就是講變數的位址賦給指標

3、指向函式的指標,其實就是用(*p)取代原函式名,如上。

4、變數的引用

int a;

int &b=a;//引用的宣告,其實就是給a起乙個別名b,共同指向同一記憶體位址

引用在作為函式引數時很有用喔!和指標相同的效果,卻比指標更直觀!!!

int main()

{ void swap(int &a,int &b);

int i=3,j=5;

swap(i,j);//a,b即成為i,j的別名

cout《四、void 和void* 的區別

void 是指」無型別「

void* 是」無型別指標「,void *可以指向任何型別的資料

在作為函式引數時,它可以接收任何型別的引數,這在傳遞(void*)this型別的引數時,很重要!

C語言指標用法總結 指標與陣列

c include intmain int i printf d n a a指向a 0 a 0 int的元素,a的型別就是 int 4,1跨度是4個位元組 printf d n a 1 printf d n a a這個位址指向整個陣列,int 5 1跨度是整個陣列的位元組長度,即20個位元組 pri...

c 指標中const的用法總結

include using namespace std int main int b1 1,b2 2,b3 3,b4 4,b5 5 int c 100 const int cc 1000 int p const int a1 b1 const修飾a指向的物件b,a可變,a指向的物件b不可變 int ...

C語言入門之指標用法教程

對於c語言初學者來說,需要明白指標是啥?重點就在乙個 指 上。指啥?指的位址。啥位址?記憶體的位址。上面說明就是指標的本質了。這裡再詳細解釋下。資料存起來是要存在記憶體裡面的,就是www.cppcns.com在記憶體裡圈出一塊地,在這塊地里放想放的東西。變數關心的是這塊地里放的東西,並不關心它在記憶...