扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
pop函数 出栈 ;push函数 进栈。
站在用户的角度思考问题,与客户深入沟通,找到鄞州网站设计与鄞州网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、网站建设、外贸网站建设、企业官网、英文网站、手机端网站、网站推广、国际域名空间、虚拟主机、企业邮箱。业务覆盖鄞州地区。
相当于有一个箱子,push函数是把东西放进去;而pop函数则相反,是把东西从那箱子里拿出来。
就是返回一个数组的地址,比如:
int* Fun(int pArray[])
{
return pArray;
}
int pArray[] 作为参数和 int *是一样的
因为不能返回局部变量 函数的返回地址就是形参的
你要知道 你局部变量的地址是不能返回的
所以,我还是返回一个动态的地址
int* Fun()
{
int *pInt = new int[100];
return pInt;
}
这样就可以了
还有啊 最后记得释放pInt啊
你的程序:
main()
{
int b[3];
b=pop();
}
int * pop()
{
int a[3],i;//定义的局部变量a[3]在调用完之后自动释放其空间
for(i=0;i3;i++)
a[i]=i;
return a;//返回的是指向数组a[3]的地址而不是数组a[3]本身
}
注:既然上面说到调用的方法返回的是指向数组a[3]的地址,所以主函数中b接收的应该是指向数组a[3]的地址,而数组a[3]在方法调用完后又被释放了,所以b接收不到数组a[3],故出错。
正确的程序:
#includestdio.h
main()
{
int b[3];
pop(b,3);
}
void pop(int a[],int n)//该方法传入两个参数,第一个是传入指向数组的地址,第二个参数是传入数组的长度,不需写返回语句return,只需通过指向数组的地址的传入就可以直接将数组b[]的值改变
{
int i;
for(i=0;in;i++)
a[i]=i;
}
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流