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

admin2010-01-10  29

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

选项 A、main()          { int*p;          fun(p);          ┇          }               int fun(int *p)        {  int s;p=&s;}
B、main()      { int*p;        fun(&p);          ┇      }      int fun(int * *p)     {  int s;*p=&s;}
C、#include<stdlib.h>        main()        {  int*p;      fun(&p);     ┇          }      int fun(int * *p)        {  *p=(int*)malloc(2);}
D、#include<stdlib.h>   main()   { int*P;     fun(p);      ┇    }   int fun(int *p)   {p=(int*)malloc(sizeof(int));}

答案4

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

相关试题推荐
最新回复(0)