本文共 1118 字,大约阅读时间需要 3 分钟。
指针要赋初值
#includeint main(void){ int *p=0; *p=12; //*p要赋初值,无值时 ,*p指向未知位置,这个位置有的是不能读写的,这时再赋值,会程序崩溃 //本例中 位置0 即为不可写入的位置之一,当再次给*p赋值时,程序崩溃。 //本程序是一个错误实例,运行时程序崩溃 return 0;}
指针交换swap
#includevoid swap(int *a,int *b); int main(){ int a=5,b=6;swap(&a,&b);printf("a=%d,b=%d\n",a,b);return 0;}void swap(int *a,int *b){ int t=0; t=*b; *b=*a; *a=t;}
指针result
#includeint divide(int a,int b,int *result);int main(void){ int a=5,b=2; int c; if(divide(a,b,&c)) { printf("%d/%d=%d\n",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;}
指针遍历
#includeint main(void){ int ai[]={ 0,1,2,3,4,5,6,7,8,9,-1}; int *p=ai; while(*p!=-1) { printf("%d\n",*p++); }}指针和数组```c#include void m(int a[]) //a[]在此处相当于一个指针,相当于int *a { //传入的是a[]数组的地址 printf("%d\n",a);}void n(int *p){ printf("%d\n",*p);} int main(void){ int a[]={ 0,1,2,3,4,5,6,7,8,9}; int b[][2]={ { 0,0},{ 1,1},{ 2,2},{ 3,3}}; m(a); n(a); return 0;}
转载地址:http://zzde.baihongyu.com/