指標的運算包括
1、指標的加法
2、指標的減法
char short
int long long long float double
位元組數 1 2 2/4 4 8 4 8
(int不加說明為4個位元組)
對指標的加法而言 指標是不能加指標的 它只能加乙個數字
比如 指標+1: 加乙個單元格 需要調整(調整的權重:為指標去掉乙個星號*,然後求sizeof)
eg: int*p;p+1加4個位元組=sizeof(int)
double*p;p+1,加8個位元組=sizeof(double)
char**p;p+1,加4個位元組=sizeof(char*)
int main()
對於指標的減法而言 它可以表示為 指標減去乙個數 也可以是指標減指標
指標減去乙個數 和指標加乙個數 差不多 都需要調整權重下面是指標減去乙個數
int main()
指標-指標 表示間隔單元個數
1、算出間隔位元組數(正負)2、除以權重
int main()
;//x
int *p = &arr[1];//x+4
int *q = &arr[9];//x+36
printf("%d\n",p-q);//-8
printf("%d\n",q-p);//8
printf("%d\n",(char **)q-(char **)p);//8
printf("%d\n",(short *)q-(short *)p);//16
printf("%d\n",(double *)q-(double *)p);//4
printf("%d\n",(char *)q-(char *)p);//32
printf("%d\n",(long long)q-(long long)p);//32
return 0;
}
指標的運算
指標運算 指標演算法並不依賴於指標的型別,如果p是乙個指向char的指標,那麼p 1就指向下乙個char 算術運算 指標的算數運算只限於兩種形式 指標運算只有用於陣列中其結果才是可以 的,對於任何並非指向陣列元素的指標執行算數運算其結果是非法的 1.指標 整數 結果也是指標 這種形式只能用於指向陣列...
指標的運算
include int main int p arr p 10 p p 20 printf d,08x n arr 0 arr 1 return 0 指標 1的含義,首先思考一下指標 1可能的幾個含義 1 加整個陣列 這種含義不太符合實際,題中要的是遍歷陣列中的數。如果是加整個陣列,那就是直接跳過去...
指標的運算
指標加法 指標 1 加乙個單元格 指標 數字 需要調整,調整的權重為sizeof 指標去掉乙個 指標全部為4個位元組 1級指標,2級指標。include int main 指標 數字 需要調整 include int main 指標 指標 1 算出位元組 2 除以調整的權重 include int ...