1、12345678应用指针程序设计8.1地址与指针8.1地址与指针8.1地址与指针地址与指针8.1地址与指针地址与指针8.1地址与指针地址与指针8.1地址与指针地址与指针8.1地址与指针地址与指针8.2指针变量的定义与引指针变量的定义与引用用8.2指针变量的定义与引指针变量的定义与引用用8.2指针变量的定义与引指针变量的定义与引用用8.2指针变量的定义与引指针变量的定义与引用用q+;q+;q-;p+;k=q-p;k为为2main()int a10,*p,*q;p=a;q=&a4;p=a+6;if(pq)printf(“q大于pn”);else printf(“q不大于pn”);printf(“%
2、dn”,q-p);程序结果如下:程序结果如下:q不大于不大于p-28.4指针与一维数组8.4指针与一维数指针与一维数组组8.4指针与一维数指针与一维数组组8.4指针与一维数指针与一维数组组8.4指针与一维数指针与一维数组组8.5指针与二维数组8.5指针与二维数组8.5指针与二维数组指针与二维数组8.5指针与二维数组指针与二维数组8.5指针与二维数组指针与二维数组8.5指针与二维数组指针与二维数组prt 0+0 prt 0+1 *(prt+0)+0 *(prt+0)+1 prt 1+0 prt 1+1 *(prt+1)+0 *(prt+1)+1 prt 2+0 prt 2+1 *(prt+2)+
3、0 *(prt+2)+1 8.5指针与二维数组指针与二维数组8.5指针与二维数组指针与二维数组8.5指针与二维数组指针与二维数组8.6指针与字符串8.6指针与字符串8.6指针与字符串指针与字符串8.6指针与字符串指针与字符串8.6指针与字符串指针与字符串8.6指针与字符串指针与字符串#include#includevoid inverse(char*);main()char s81;printf(Input String:);gets(s);printf(Inversed:);inverse(s);puts(s);8.6指针与字符串指针与字符串8.6指针与字符串指针与字符串8.7指针与函数8.
4、7指针与函数8.7指针与函数8.7指针与函数8.7指针与函数8.7指针与函数#includemain()int max(int,int);int(*p)(int,int);int a,b,c;p=max;scanf(%d%d,&a,&b);c=(*p)(a,b);printf(a=%d,b=%d,max=%dn,a,b,c);int max(int x,int y)int z;z=xy?x:y;return z;8.7指针与函数8.7指针与函数#includeint*fun(int,int);main()int i,j,*p;printf(enter two num to i,j:);scan
5、f(%d%d,&i,&j);p=fun(i,j);/*调用fun,返回大数地址,赋值给指针变量p*/printf(max=%dn,*p);/*打印p指向的数据*/int*fun(int x,int y)/*fun函数返回形参x,y中较大数的地址(指针)*/int*z;if(xy)z=&x;else z=&y;return z;8.7指针与函数若一个数组的元素均为指针类型数据,则称若一个数组的元素均为指针类型数据,则称为指针数组。指针数组的所有元素都必须是具有为指针数组。指针数组的所有元素都必须是具有相同存储类型和指向相同数据类型的指针变量。相同存储类型和指向相同数据类型的指针变量。指针数组的定
6、义说明形式为指针数组的定义说明形式为:类型说明符:类型说明符*数组名数组名常量表达式常量表达式;例如例如:int*p4;注意注意,不要写成,不要写成“int(*p)4;”,这是指向一维数组的指针变量,这是指向一维数组的指针变量。8.7指针与函数8.7指针与函数8.7指针与函数8.7指针与函数main函数是由系统调用的,函数是由系统调用的,main函数的参数值是从操作系函数的参数值是从操作系统统DOS命令行上获得的。命令行上获得的。DOS提示符下命令行的一般形式是:提示符下命令行的一般形式是:C:可执行文件名可执行文件名 参数参数1 参数参数2 参数参数n其中其中“可执行文件名可执行文件名”就是
7、源程序(就是源程序(.C)经编译连接后生)经编译连接后生成的可执行程序(成的可执行程序(.EXE,含盘符、路径),各参数为字符串(,含盘符、路径),各参数为字符串(不需要加双引号)。不需要加双引号)。argc参数表示命令行中参数的个数(注意参数表示命令行中参数的个数(注意:文件名本身也算一个参数),其值是在输入命令行时由系统:文件名本身也算一个参数),其值是在输入命令行时由系统按实际参数的个数自动赋予的;按实际参数的个数自动赋予的;argv含有含有argc个元素,分别存个元素,分别存放各参数字符串的首地址。放各参数字符串的首地址。8.7指针与函数main(int argc,char argv)while(argv1)+argv;printf(“%sn”,*argv);-argc;8.7指针与函数8.7指针与函数8.7指针与函数例:使用指向指针的指针样例。#includemain()char*name=FORTRAN,BASIC,LISP,Pascal,C,PROLOG,Java;char*p;int i;for(i=0;i7;i+)p=name+i;printf(%sn,*p);8.7指针与函数全国二级C考试大纲全国二级C考试大纲C语言程序设计案例引导教程不断学习,贵在坚持