|
#include <stdio.h> main() { int a,b; int *p,*q; a=100,b=2; p=&a; q=&b; int **p1; p1=&p; printf("a=%d\nb=%d\n*p=%d\n*q=%d\n*p1=%d\n",a,b,*p,*q,**p1); } 指针引用传递 vi example2.c #include <stdio.h> int swap(int *a,int *b){ if(*a>*b){ int t=*a; *a=*b; *b=t; } } main() { int a=200,b=100; swap(&a,&b); printf("a=%d,b=%d",a,b); }
指针函数 vi example3.c #include <stdio.h> int *swap(int *a,int *b){ if(*a>*b){ int t=*a; *a=*b; *b=t; }
return a; } main() { int a=200,b=100; int *c; c=swap(&a,&b); printf("a=%d\nb=%d\n*c=%d\n",a,b,*c);
指针函数 vi example4.c #include <stdio.h> int max(int a,int b){ return a>b?a:b; } main() { int a=200,b=100; int (*c)(); c=max;(*c)(a,b); printf("a=%d\nb=%d\nc=%d\n(*c)(a,b)=",a,b,(*c)(a,b)); } 指向数组的指针 vi example5.c #include <stdio.h> main() { int *p,i,a[10]; p=a; for(i=0;i<10;i++) { scanf("%d",p++); } p=a; for(i=0;i<10;i++) { printf("%d\n",*p++); } } 数组指针的移动 vi example6.c
#include <stdio.h> main() { int a[5]={1,3,5,6,7}; int *p=a+3; printf("*p=%d\n*(p+1)=%d\n*p+3=%d\n",*p,*(p+1),*p+3); } 数组指针的移动 vi example7.c #include <stdio.h> main() { char a[80],b[80],*p,*q; int n; gets(a); scanf("%d",&n); p=a;q=b; p+=n-1; while(*p!='\0') { *q=*p; p++;q++; } *q='\0'; puts(b); }
|