(1)指標+-數字
指標+1:意為加乙個單元格
指標加減數字,需要調整,調整的權重為sizeof(指標去掉乙個*)
int main()
;int *p = arr; //int
*p = 10;
p++; //加乙個int單元格,4位元組
*p = 20;
double brr[5] = ;
double *dp = brr; //double
dp++; //加乙個單元格,8位元組
*dp = 100;
char crr[5] = "abc";
char *cp = crr; //char *cp = "abcde"; //char
cp++; //加乙個單元格,1位元組
*cp = 'x';
return 0;
練習:加法:
int main()
;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",(short *)q-(short *)p); //16
printf("%d\n",(double *)q-(double *)p); //4
printf("%d\n",(int ***)q-(int ***)p); //8
printf("%d\n",(char **)q-(char **)p); //8
printf("%d\n",(long)q-(long)p); //32,
注意此處已不再是指標型別
return 0;
總結:指標的所有算術運算都需要調整,調整的權重為sizeof(指標去掉乙個*)
(3)『[ ]』自帶解引用
int *p;
p=arr;
int arr[10]=;
p[i]==*(p+i);
int *p=arr;
*(arr+i)==arr[i];
指標的算術運算
指標可以加上或減去乙個整數的算術運算。首先來看個例子 include int main void short st 3 double pw wa short ps st 0 cout pw 分析上面的程式,我們可以看到,c 一般把陣列名和第乙個元素的位址等價,所以我們可以用上面的兩種方法初始化指標,...
指標的算術運算
指標和陣列 指標和陣列在c語言中有錯綜複雜的聯絡。在前面的課程中,你學會了如何宣告陣列變數 int anarray 5 declare array of 5 integers 關聯陣列實際上是指標,指向陣列的第乙個元素!因為陣列變數 是指標,你可以解析它 它返回 陣列元素0 123 4567 int...
指標的算術運算
指標的算術運算 c語言允許你在指標執行整數的加減運算。如果pnptr指向乙個整數,pnptr 1 pnptr後在記憶體中的位址的下乙個整數。pnptr 1是在pnptr以前的整數字址。請注意,pnptr 1不在pnptr返回位址,但下乙個物件,pnptr分型。如果pnptr指向乙個整數 假設4位元組...