一.指针的使用案例:
(1):函数中返回多个变量,例如:
#includevoid minmax(int a[], int len, int *max,int *min); int main(void){ int a[] ={1,2,3,4,5,6,7,8,9,10,14,16,17,21,23,66}; int min,max; minmax(a,sizof(a)/sizof(a[0]),&min,&max); return 0; } void minmax(int a[], int len, int *min, int *max) { int i; *min =*max =a[0]; for(i=1;i *max) *max= a[i]; } }
(2)函数返回运算状态,结果通过指针返回,例如:
#includeint divide(int a,int b,int *result); int main(void) { int a=5,b=2,c; if(divide(a,b,&c){ printf("%d / %d = %d",a,b,c); } return 0; } int divide(int a,int b,int *result); { int ret=1; if(b==0){ ret=0; }else{ *result=a/b; } return ret; }
二.关于给指针加const
指针是const:表示一旦得到了某个变量的地址,不能在指向其他变量。
例如:int *const q=&i; q是const
所指是const:表示不能通过这个指针去修改那个变量(并不能是那个变量成为const)
例如:const int *p =&i; *p不能做赋值运算。
区分方式:判断const在*的前面还是后面,在前面则是所指是const,在后面就是指针为const。
Tips:const int a[]={1,2,3,4,5}表示的是const数组,数组本身是个const指针代表的是a这个数组不能指向其他数组,在外面再加一个const就代表的是里面的值也不能发生变化,所以这类数组只能通过初始化赋值。



