您好,登錄后才能下訂單哦!
指針 和 一維數(shù)組
一維數(shù)組名是個指針常量 e.g:int a[5]={1,2,3,4,5};//輸出a & a[0] 發(fā)現(xiàn) 2個值相等
一維數(shù)組名存放的是一維數(shù)組第一個元素的地址
下標和指針的關(guān)系若a 是指針變量 那么 a[x]等價與*(a+x)//a = &a[0] *a=a[0]
一維數(shù)組需要2個參數(shù):
數(shù)組第一個元素的地址 數(shù)組的長度
e.g:void pArr(int *pArr,int len)//pArr是一維數(shù)組名,len是數(shù)組的長度
#include <stdio.h>
void OutArr(int *pArr,int len)
{
int i;
for (i=0;i<len;++i)
printf("%d\n",pArr[i]);
}
int main(void)
{
int a[5] = {1,2,3,4,5};
OutArr(a,5);
return 0;
}
指針變量的運算(指針變量是一個操作受限的變量)
指針變量 不能相加 相乘 相除 只能做減法(相減也是需要收到限制)
若2個指針變量指向的是同一塊連續(xù)空間中的不同存儲單元,才可以相減
e.g:
#include <stdio.h>
int main(void)
{
int a[5] = {1,2,3,4,5};
int *i,*j;
i = &a[1];
j = &a[4];
printf("i&j相隔%d個單元\n",j-i);
return 0;
}
指針變量占用幾個字節(jié) sizeof:可以返回數(shù)據(jù)類型所占的字節(jié)數(shù)
#include <stdio.h>
int main(void)
{
int a = 7;
char b = 'b';
double d = 10.5;//abd是不同類型的變量
int *i = &a;
char *j = &b;
double *k = &d;//ijk是不同類型的地址
printf("%d %d %d\n",sizeof(a),sizeof(b),sizeof(d));//4 1 8
printf("%d %d %d\n",sizeof(i),sizeof(j),sizeof(k));//4 4 4
return 0;
}
指針變量無論它指向什么類型的變量 該指針變量本身只占4個字節(jié)
一個變量的地址使用該變量首字節(jié)的地址表示
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。