有以下程序 #include #include void fun(int *p1,int *p2,int *s ) { s=( int * )malloc( sizeof(int) ); *s = *p1 + *(p2++); } main() {

admin2015-07-28  15

问题 有以下程序
#include
#include
void fun(int *p1,int *p2,int *s )
{ s=( int * )malloc( sizeof(int) );
*s = *p1 + *(p2++);
}
main()
{ int a[2]={1,2 }, b[2]={10,20}, *s=a;
fun( a,b,s ); printf("%d\n", *s );
}
程序运行后的输出结果是( )。

选项 A、1
B、10
C、11
D、2

答案A

解析 函数fun()的作用是将s重新指向一个内存空间并重新赋值,但是函数传递过程中形参只是实参的一个副本,如果形参和实参为两个地址,则形参指针指向的变化不能影响到实参指针的指向,所以函数fun()并不能改变s的指向,所以输出结果为1,答案选A。
转载请注明原文地址:https://kaotiyun.com/show/UKJp777K
0

最新回复(0)