网上虚拟实验室:c语言p是该函数的形参。。。。

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/30 20:23:20
47
若定义了以下函数:void f(......){......*p=(double *)malloc( 10*sizeof( double));
......}
p是该函数的形参,要求通过p把动态分配存储单元的地址传回主调用函数,则形参p的正确定义是 double **p为什么?

malloc( 10*sizeof( double是什么意思?

48 以下程序的输出是 51为什么?
struct st { int x; int *y;} *p;int dt[4]={ 10,20,30,40 };
struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};
main() { p=aa;printf("%d\n", ++(p->x));}

struct st aa[4]={ 50,&dt[0],60,&dt[0],60,&dt[0],60,&dt[0],};是什么意思?
main() { p=aa;printf("%d\n", ++(p->x));}是什么意思?

1. malloc( 10*sizeof( double))是指分配10个double类型大小的内存,并将p指向这段内存的开始地址.

2. 语句的输出为:51
aa是类型为st的数组,每个元素都为st,st为一个整型和一个整形指针,p=aa表示将p指向数组aa的开始地址,即将pp指向aa的第一个元素(50, &dt[0]),而++(p->x)是先取p->x的值为51,再执行++操作为51,然后将其输出.