如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
会计学11.3指针(zhǐzhēn)与数组指向数组元素的指针(zhǐzhēn)变量指针的运算指针变量的赋值运算p=&a;(将变量a地址p)p=array;(将数组array首地址p)p=&array[i];(将数组元素地址p)p1=p2;(指针变量p2值p1)不能把一个(yīꞬè)整数p,也不能把p的值整型变量指针(zhǐzhēn)变量的算术运算:pipid(i为整型数,d为p指向的变量所占字节数)p++,p--,p+i,p-i,p+=i,p-=i等若p1与p2指向同一数组,p1-p2=两指针(zhǐzhēn)间元素个数(p1-p2)/dp1+p2无意义指针变量的关系运算若p1和p2指向同一(tóngyī)数组,则p1<p2表示p1指的元素在前p1>p2表示p1指的元素在后p1==p2表示p1与p2指向同一(tóngyī)元素若p1与p2不指向同一(tóngyī)数组,比较无意义p==NULL或p!=NULL数组元素(yuánsù)表示方法例inta[]={1,2,3,4,5,6,7,8,9,10},*p=a,i;数组元素地址(dìzhǐ)的正确表示:(A)&(a+1)(B)a++(C)&p(D)&p[i]例voidmain(){inta[]={5,8,7,6,2,7,3};inty,*p=&a[1];y=(*--p)++;printf(“%d”,y);printf(“%d”,a[0]);}main(){inti,*p,a[7];p=a;for(i=0;i<7;i++)scanf("%d",p++);printf("\n");for(i=0;i<7;i++,p++)printf("%d",*p);}数组名作函数参数数组名作函数参数,是“地址”传递数组名作函数参数,实参与(cānyù)形参的对应关系例将数组a中的n个整数按相反(xiāngfǎn)顺序存放例将数组a中的n个整数(zhěngshù)按相反顺序存放例将数组a中的n个整数按相反(xiāngfǎn)顺序存放例将数组a中的n个整数(zhěngshù)按相反顺序存放一级指针变量(biànliàng)与一维数组的关系int*p与intq[10]数组名是指针(地址)常量p=q;p+i是q[i]的地址数组元素的表示方法:下标法和指针法,即若p=q,则p[i]q[i]*(p+i)*(q+i)形参数组实质上是指针变量(biànliàng),即intq[]int*q在定义指针变量(biànliàng)(不是形参)时,不能把int*p写成intp[];系统只给p分配能保存一个指针值的内存区(一般2字节);而给q分配2*10字节的内存区1,写出程序的运行(yùnxíng)结果.#include<stdio.h>voidmain(void){inta[]={1,2,3,4,5};intx,y,*p;p=&a[0];x=*(p+2);y=*(p+4);printf(“%d,%d,%d\n”,*p,x,y);}2,写出程序(chéngxù)的运行结果.#include<stdio.h>voidmain(void){intx[]={1,2,3};ints,i,*p;s=1;p=x;for(i=0;i<3;i++)s*=*(p+i);printf(“%d\n”,s);}11.4指针与字符(zìfú)串字符(zìfú)串表示形式用字符(zìfú)数组实现用字符指针(zhǐzhēn)实现字符串指针(zhǐzhēn)作函数参数字符指针变量与字符数组char*cp;与charstr[20];str由若干元素组成,每个元素放一个字符;而cp中存放字符串首地址charstr[20];str=“IloveChina!”;()charstr[20]=“IloveChina”;()char*cp;cp=“IloveChina!”;()str是地址常量;cp是地址变量cp接受键入(jiànrù)字符串时,必须先开辟存储空间字符串与数组关系字符串用一维字符数组存放字符数组具有一维数组的所有特点数组名是指向数组首地址的地址常量数组元素(yuánsù)的引用方法可用指针法和下标法数组名作函数参数是地址传递等区别存储格式:字符串结束标志赋值方式与初始化输入输出方式:%s%c11.5指针与函数函数指针:函数在编译时被分配的入口(rùkǒu)地址,用函数名表示例用函数指针变量调用函数,比较(bǐjiào)两个数大小用函数指针变量(biànliàng)作函