指標的算術運算

2021-08-18 08:08:52 字數 1110 閱讀 9235

(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位元組...