您好,登錄后才能下訂單哦!
指針 和 一維數組
一維數組名是個指針常量 e.g:int a[5]={1,2,3,4,5};//輸出a & a[0] 發現 2個值相等
一維數組名存放的是一維數組第一個元素的地址
下標和指針的關系若a 是指針變量 那么 a[x]等價與*(a+x)//a = &a[0] *a=a[0]
一維數組需要2個參數:
數組第一個元素的地址 數組的長度
e.g:void pArr(int *pArr,int len)//pArr是一維數組名,len是數組的長度
#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個指針變量指向的是同一塊連續空間中的不同存儲單元,才可以相減
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;
}
指針變量占用幾個字節 sizeof:可以返回數據類型所占的字節數
#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個字節
一個變量的地址使用該變量首字節的地址表示
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。