數組-指標-引用

來源:互聯網
上載者:User
一、指標的概念

指標是記憶體中的地址。

1、文法:類型 * 變數名
這裡的類型是定義了這個指標指向的變數類型。

2、指標的運算子(*和&)
&取地址符
例如:
int counta=100;
int * mm;
mm=&counta;
假設counta所在地址是2000,這是候m=2000。

#include
void main()
{
int counta=100;
int * mm;
mm=&counta;
cout
}
*返回這個地址的值,與&正好相反。

#include
void main()
{
int p,counta=100;
int * mm;
mm=&counta;
p=* mm;
cout
}

3、指標的賦值

#include
void main()
{
int x;
int * p1,* p2;
p1=&x;
p2=p1;
cout
}

結果:0x0012FF7C

4、指標的運算
指標的++與--是將指標的地址移動所屬變數類型位元。

char 8
int 16
long 32
float 32
double 64

5、指標與數組

數組聲明:類型 變數名[長度]

沒有下標的“一維”數組名就是一個指向該數組第一個元素的指標。

#include
void main()
{
int x[3]={1,2,3};
int * p1;
p1=x;
cout
}

a、等價關係:

如:char c[10];
c 和 &c[0] 是等價的。

再如:char c[2][3];
c 和 &c[0][0] 是等價的。
*(c+12) 和 &c[1][2] 是等價的。

b、數組與指標的關係

1>一維數組的指標

#include
void main()
{
int x[2]={1,2};
int * p1;
p1=x;
cout
cout
}

2>二維數組的指標

#include
void main()
{
int
x[2][3]={1,2,3,4,5,6};
//int x[2]={1,2};
int * p1;
p1=&x[0][0]; //二維數組給指標不能用"p1=x"這個來賦值,只能是“p1=x[2]”
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
cout
//規律:* (p1+((1*3)+2))
}

思考:指標是地址,那麼如果想得到某地址的變數用什麼方法。

二、將引用和指標相比較

引用是變數的別名。

#include
void main()
{
int * p1,a=100;
int & y1=a; //必須直接賦值
p1=&a;
y1=a;
cout
cout
}

指標和引用可以達到同樣的效果。

#include
void main()
{
void funca(int & vala);
void funcp(int * valp);
int a=100,b=100;
int & y1=a; //必須直接賦值,而且只能賦值一次
funca(a);
funcp(&b);
cout
cout
}
void funca(int & vala)
{
vala=200;
}
void funcp(int * valp)
{
* valp=500;
}

三、*和&的用途,避免這些符號在使用上發生混淆

1、*的作用:

1>乘號
2>指標定義符號
3>返回某個地址的值

2、&的作用:

1>位元運算中的“與”
2>取地址符
3>引用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.