《C语言程序设计与实验指导》_8.pptVIP

  • 1
  • 0
  • 约1.02万字
  • 约 33页
  • 2026-03-10 发布于广东
  • 举报

8.8函数的进一步讨论

8.8.1main()函数的参数C程序中,有指针数组作main()函数的形参。例如:voidmain(intargc,char*argv[])main()函数中形参argc是指命令行中参数的个数(文件名也是一个参数),argv是一个指针数组,该数组的每个元素都指向一个字符串。例如:以下程序,当输入mycOK!GOODCR,程序的执行结果是_____.#includestdio.hvoidmain(intargc,char*argv[]){inti;printf(%d\n,argc);for(i=1;iargc;i++)printf(%s,argv[i]);printf(\n);}8.8.2指向函数指针变量的定义在C语言中,函数名代表该函数的入口地址,因此可以定义一种指向函数的指针来存放这种地址。例如:#includestdio.hdoublefun(inta,int*p){…}main(){double(*fp)(int,int*),y;intn;//定义变量fp为指向函数的指针变量fp=fun;//变量fp指向函数funy=(*fp)(56,n);//通过指向函数的指针调用fun函数}注意:若定义double*fp(int,int*);,则fp是一个返回值为指针的函数。8.8.2指向函数指针变量的定义例8.20设有以下函数voidfun(intn,char*s){……}则下面对函数指针的定义和赋值均是正确的是()。A)void(*pf)();pf=fun;B)viod*pf();pf=fun;C)void*pf();*pf=fun;D)void(*pf)(int,char);pf=fun;青岛滨海学院——C语言程序设计——第八章指针本章目录8.1指针和指针变量的概念8.2用指针访问变量8.3数组与指针8.4字符串与指针8.5指针作函数参数8.6返回指针值的函数8.7指针数组和指向指针的指针8.8函数的进一步讨论8.1指针和指针变量的概念C程序中定义变量,在对程序编译时,就为变量分配内存单元。内存的每一个单元都是有地址的。一个变量可以被分配多个内存单元,一般认为第一个内存单元的地址就是该变量的地址。在程序中,变量和变量的地址是一一对应的。当程序想访问变量时,先确定该变量的地址,然后在内存中寻找该地址,再读取该地址内存单元中的内容。因此,C语言中访问变量,是通过访问变量的地址来完成的。例如有定义变量的语句:inti;程序先在内存中为变量i分配4个字节2000,2001,2002,2003。一般认为变量i的地址是2000。有输出语句:printf(“%d”,i);根据变量i的地址是2000,在内存中寻找地址为2000,连续4个的内存单元,读取数据,再输出。这种按变量地址存取变量值的方式称为“直接访问”方式。8.1指针和指针变量的概念还有另外一种访问方式,称之为“间接访问”方式,将变量i的地址存放在另一个变量中。假设定义变量p用来存放变量i的地址,则变量p指向i。若需访问i,则首先应访问变量p,以获得i的地址。变量的地址称为该变量的指针。例如变量i的指针是2000。用来存放指针的变量称为指针变量。例如变量p就是指针变量。8.2用指针访问变量

8.2.1指针变量的定义、赋值指针变量的定义形式:类型名*指针变量名;例如:int*p;其中,星号*是一个类型说明符,说明变量p是一个指针变量,即用来存放地址的变量。类型名是指针变量p所指向的变量的类型。也可同时定义多个指针变量。例如:int*p1,*p2;inti=3,j=4;p1=i;p2=j;指针变量中只能存放地址,不能将一个整数赋给一个指针变量。p=1000;这种赋值是不合法的。8.2.2指针变量的引用对于指针变量,有两个有关的运算符:(1):取地址运算符。分析下列程序语句是否合法:inti=10,k;i

文档评论(0)

1亿VIP精品文档

相关文档