如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
C语言程序设计主要内容1.指针和函数1.1指针变量作函数参数1.2返回指针值的函数1.3指向函数的指针变量swap(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}main(){inta,b;int*pointer_1,*pointer_2;scanf("%d,%d",&a,&b);pointer_1=&a;pointer_2=&b;if(a<b)swap(pointer_1,pointer_2);printf("\n%d,%d\n",a,b);}swap(int*p1,int*p2){intp;p=*p1;*p1=*p2;*p2=p;}main(){inta,b;int*pointer_1,*pointer_2;scanf("%d,%d",&a,&b);pointer_1=&a;pointer_2=&b;if(a<b)swap(pointer_1,pointer_2);printf("\n%d,%d\n",a,b);}swap(int*p1,int*p2){int*p;*p=*p1;*p1=*p2;*p2=*p;}main(){inta,b;int*pointer_1,*pointer_2;scanf("%d,%d",&a,&b);pointer_1=&a;pointer_2=&b;if(a<b)swap(pointer_1,pointer_2);printf("\n%d,%d\n",a,b);}swap(intx,inty){intt;t=x;x=y;y=t;}main(){inta,b;int*pointer_1,*pointer_2;scanf("%d,%d",&a,&b);pointer_1=&a;pointer_2=&b;if(a<b)swap(*pointer_1,*pointer_2);printf("\n%d,%d\n",a,b);}运行结果:5,9Voidf(inty,int*x){y=y+*x;*x=*x+y;}main(){intx=2,y=4;f(y,&x);printf(“%d%d\n",x,y);})1.2返回指针的函数(返回值为某指针类型的函数)函数定义形式:类型标识符*函数名(参数表)例int*f(intx,inty){……}例写一个函数,求两个int型变量中居于较大值的变量的地址例写一个函数,求两个int型变量中居于较大值的变量的地址例写一个函数,求两个int型变量中居于较大值的变量的地址1.3指向函数的指针函数在编译时被分配的入口地址(程序段的存储地址)称为函数指针,用函数名表示。我们将这一地址存到一个指针变量里去,这个变量就是指向函数的指针变量。用函数指针变量作函数参数1、有以下程序main(){inta=1,b=3,c=5;int*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf("%d\n",c);}执行后的输出结果是A)1B)2C)3D)42、已定义以下函数intfun(int*p){return*p;}fun函数返回值是A)不确定的值B)一个整数C)形参p中存放的值D)形参p的地址值3、08/4(40)设有定义语句int(*f)(int);,则以下叙述正确的是()。A)f是基类型为int的指针变量B)f是指向函数的指针变量,该函数具有一个int类型的形态C)f是指向int类型一维数组的指针变量D)f是函数名,该函数的返回值是其类型为int类型的地址4、09/9(33)设有以下函数:voidfun(intn,char*s){……}则下面对函数指针的定义和赋值均正确的是A)void(*pf)();pf=fun;B)void*pf();pf=fun;C)void*pf();*pf=fun;D)void(*pf)(int,char);pf=&fun;(二)指针与数组2.1一维数组和指针1)地址关系2)指向一维数组的指针变量3)数组的表示方法2.2二维数组和指针1.二维数组元素的地址和二维数组名2.指向二维数组元素的指针变量3、指向二维数组中的行的指针变量2.1一维数组和指针1.一维数组元素的地址和一维数组名(地址关系)(2)有关指针的运算1)算术运算:pipid(i为整型数,d为p指向的变量所占字节数)p++,p--,p+i,p-i,p+=i,p-=i等若p1与p2指向同一数组中的元素,p1-p2=两指针间元素个数(p1-p2)/dp1+p2无意义2)指针变量的关系运算若p1和p2指向同一数组,则