一、介紹一些基本概念
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在記憶體裡圈出一塊地,在這塊地里放想放的東西。變數關心的是這塊地里放的東西,並不關心它在記憶...