基本含義
指針:本質(zhì)是一個(gè)與地址相關(guān)的復(fù)合類型,它的值是數(shù)據(jù)存放的位置,也就是地址。
數(shù)組:本質(zhì)是一系列的變量。
數(shù)組名:對(duì)應(yīng)著一塊內(nèi)存,其地址與容量在生命周期內(nèi)保持不變,只有數(shù)組的內(nèi)容可以改變
指針可以隨時(shí)指向任意類型的內(nèi)存塊,它的特征是可變的。
參數(shù):當(dāng)數(shù)組作為函數(shù)的參數(shù)傳遞時(shí),數(shù)組則自動(dòng)退化為同類型的指針。
指針與數(shù)組
指針:int a=10; int *p=&a;
指針的指針: int b=10; int *p=&b; int **pp=&p
指針數(shù)組: int *p[10]; 含有10個(gè)指針元素,每一個(gè)元素都是指針。因?yàn)橄聵?biāo)運(yùn)算符[]的優(yōu)
先級(jí)高于指針運(yùn)算符*。
數(shù)組指針: int (*p)[10];指針可以用來指向含有10個(gè)元素的整數(shù)數(shù)組。
基本概念
變量的指針是變量的地址。
存放變量的地址的變量是指針變量。
int *p1;表示p1是一個(gè)指針變量,它的值是某個(gè)整型變量的地址。亦說p1指向一個(gè)整型變量
指針的賦值
1.兩種方法:
int a; int a;
int *p=&a; int *p;
p=&a;
絕對(duì)不可以把一個(gè)數(shù)賦予指針變量:int *p; p=1000;(錯(cuò))
2.指針變量的值是可以改變的:
int i,j,*p1,*p2;
p1=&i;
p2=&j;
p1=p2;(這是允許的,*p1的值是j)
*p1=*p2;(p1指向的內(nèi)容變成j)
數(shù)組指針和指針數(shù)組
數(shù)組指針:指向數(shù)組的指針,int (*pA1)[5]
指針數(shù)組:指針構(gòu)成的數(shù)組,int *pA2[5]
說白了,PA1是一個(gè)指針,PA2是一個(gè)數(shù)組。
看下面代碼會(huì)理解數(shù)組指針清楚:
#include <iostream>using namespace std;
int main()
{
int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
int (*p)[4];
int i,j;
p=a;
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
cout<<*(*(p+i)+j)<<",";
}
}
cout<<endl;
cout<<(*p+1)<<endl;
cout<<*(*p+1)<<endl;
cout<<(*p)[0]<<endl;
cout<<(*p)[1]<<endl;
cout<<(*p)[6]<<endl;
p++;
cout<<(*p)[0]<<endl;
system("pause");
return 0;
}
更多內(nèi)容參見 譚浩強(qiáng)C語言程序設(shè)計(jì)第十章
還可參考網(wǎng)絡(luò)資源:http://www.360doc.com/content/08/0410/16/61255_1180436.shtml
只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。 | ||
![]() |
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
|
||