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