int main() { int ar[10]={12,23,34,45,56,67,78,89,90,100}; int *p=&ar[0]; int *s=ar; for(int i=0;i<=10;++i) { printf("%x=>%d\n",p,*p);//printf("%x=>%d\n",p[i],*(p+i)); p=p+1; } return 0; }
void Print_Ar(int *br,int n) { printf("%d\n",sizeof(br));//4个字节 for(int i=0;i<n;i++) { printf("%d\n",br[i]);//printf("%d\n",*(br+i)); } } int main() { const int n=5; int ar[n]={12,23,34,45,56}; Print_Ar(ar,n); return 0; }
3.数组内数字左移一位
int Print_Ar(int *br,int n) { for(int i=0;i<n;i++) { printf("%d\n",br[i]); } return 0; } void Left_Move_Ar(int *br,int n) { assert(br!=nullptr); int tmp=br[0]; for(int i=0;i<n;i++) { br[i]=br[i+1]; } br[n-1]=tmp; } int main() { const int n=10; int ar[n]={12,23,34,45,45,56,67,78,89,90,100}; Print_Ar(ar,n); Left_Move_Ar(ar,n); Print_Ar(ar,n); return 0; }
4.数组内数字右移一位
int Print_Ar(int *br,int n) { for(int i=0;i<n;i++) { printf("%d\n",br[i]); } return 0; } void Right_Move_Ar(int *br,int n) { assert(br!=nullptr); int tmp=br[n-1]; for(int i=n-1;i>0;i--) { br[i]=br[i-1]; } br[0]=tmp; } int main() { const int n=10; int ar[n]={12,23,34,45,45,56,67,78,89,90,100}; Print_Ar(ar,n); Left_Move_Ar(ar,n); Print_Ar(ar,n); return 0; }
5.移动k个单位
void Left_Move_Ar(int *br,int n) { assert(br!=nullptr); int tmp=br[0]; for(int i=0;i<n;i++) { br[i]=br[i+1]; } br[n-1]=tmp; } void Right_Move_Ar(int *br,int n) { assert(br!=nullptr); int tmp=br[n-1]; for(int i=n-1;i>0;i--) { br[i]=br[i-1]; } br[0]=tmp; } void Left_Move_Ar_K(int *br,int n,int k) { assert(br!=nullptr); k=k%n; if(k>=0) { while(k--) { Left_Move_Ar(br,n); } } else { while(k++) { Right_Move_Ar(br,n); } } }
void Left_Move_Ar(int *br,int n) { assert(br!=nullptr); int tmp=br[0]; for(int i=0;i<n;i++) { br[i]=br[i+1]; } br[n-1]=tmp; } void Right_Move_Ar(int *br,int n) { assert(br!=nullptr); int tmp=br[n-1]; for(int i=n-1;i>0;i--) { br[i]=br[i-1]; } br[0]=tmp; } void Left_Move_Ar_K(int *br,int n,int k) { assert(br!=nullptr); k=k%n; if(k>=0) { while(k--) { Left_Move_Ar(br,n); } } else { while(k++) { Right_Move_Ar(br,n); } } } void Right_Move_Ar_k(int *br,int n,int k) { assert(br!=nullptr); Left_Move_Ar_K(br,n,-k); }