以下程序中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是

admin2013-02-23  30

问题 以下程序中,能够通过调用函数fun,使main函数中的指针变量p指向一个合法的整型单元的是

选项 A、main()
   {  int  *p;
      fun(p);
       …
   }
  int fun(int  *p)
   {  ints; p=&s;}
B、main()
    {  int  *p;
         fun(&p);
      …
     }
         int fun(int  **p)
     {  int s;  *p=&s;)
C、#include
  main()
   {  int  *p;
      fun(&p);
       …
   }
  int fun(int  **p)
        *p=(int*)malloc(2);}
D、#include
   main()
   {  iht  *p;
      fun(p);
      …
   }
   iht fun(iht  *p)
   {  p=(int*)malloc(sizeof(int)); }

答案4

解析 本题考核的知识点是指针变量作为函数的参数以及变量的作用域。在选项A中,main()函数中定义了一个指针变量p,调用 fun()函数时把p传给形参p,在函数中让p指向局部变量s,由于函数调用返回后,局部变量s将被释放,因此无法实现让实参p指向一个整型单元,故选项A错误.选项B中实现的也是让实参p,指向一个在函数fun()定义的局部变量s,因此也是错误的;选项C在函数fun()中分配了两个字节的内存单元并把首地址赋值给形参p指向的变量,即main()函数的指针变量p中,由于整型变量占两个字节,因此,选项C是正确的;选项D在主函数中定义了一个指针地址变量p,并把指针变量的值传给形参变量p,在fun()函数分配了一个整型单元并把首地址赋值给行参指针变量p,由于C语言中变量作为参数是传值的,所以并没有改变对应实参指针变量的值,因此选项D也是错误的.所以,C选项为所选。
转载请注明原文地址:https://kaotiyun.com/show/lEJp777K
0

最新回复(0)