指標的算術運算

2021-09-14 05:02:19 字數 1744 閱讀 8006

#include "stdio.h"

int main()

;int *p = arr;

*p = 10;

p++;//指標加1:加乙個單元格(從arr[0]到arr[1])

*p = 20;

printf("%d\n", arr[1] );

double brr[5] = ;

double *dp = brr;

dp++;//指標加1:加乙個單元格

*dp = 100;

printf("%f\n", brr[1] );

char crr[5] = "abc";

char *cp = crr;

cp++;//指標加1:加乙個單元格

*cp = 'v';

printf("%c\n", crr[1] );

return 0;

}

#include int main()

int main()

意義:表示間隔的單元格數,可正可負,先算出間隔的位元組,然後除以sizeof(指標本身)

int main()

; int *p = &arr[1];

int *q = &arr[9];

printf("%d\n",p-q); //-8

printf("%d\n",q-p); //8

printf("%d\n",(short *)q-(short *)p);

// int型4個位元組,p、q間隔4*8=32個位元組,short型佔2個位元組,32/2=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;

}

總結:

指標的算術運算+,-

1,指標+i,表示加i個單元格,其加isizeof(指標本身去掉乙個)位元組

2,指標-i,表示減i個單元格,其減isizeof(指標本身去掉乙個)位元組

3,指標+指標,非法

4,指標-指標:表示間隔的單元格數,可正可負,先算出間隔的位元組,然後除以sizeof(指標本身)

(1)int *p;

p=arr;

//p[i]==*(p+i)

(2)int *p;

p=&arr[3];

p[-1];//==*(p-1)==arr[2]

//*(arr+i)==arr[i]

應用:

void mystrcpy1(char *des,char *src)

des[i] = '\0';

}//下標換成指標

void mystrcpy2(char *des,char *src)

*(des+i)='\0';

}void mystrcpy3(char *des,char *src)

int main()

指標的算術運算

指標可以加上或減去乙個整數的算術運算。首先來看個例子 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位元組...