扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
因为函数调用时,参数是“值传递”,把参数的值传递给了被调用函数栈上的相同类型的变量。在函数内入参的值被修改之后,你修改的是被调用函数栈上的变量的值,而不是被调用函数栈之外的,调用函数之前作为参数值传递给被调用函数的参数的值。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名申请、雅安服务器托管、营销软件、网站建设、岢岚网站维护、网站推广。
如果想在函数内修改入参的值传递出去,就要用指针,或者全局变量。如果是C++,还可以使用“引用类型“变量。
你将一个int类型设为参数,然后地址传递就可以了
例如:
void x(int x)//注意这里有取地址符号,是地址传递
{
x = x-1;
}
//然后main中调用
int main()
{
int i=10;
x(i);//
//此时i成功减一
}
#include stdio.h
int add(int *a)
{
int i = 0;
int sum = 0;
for( i = 0; i 100; i++)
{
sum += (*(a+i))*2;
}
return sum;
}
int main(){
int a[100]={1,2,3};
//result
printf("The add result is %d.\n",add(a));
//print the array
printf("{");
for(int i = 0; i 100; i++)
printf("%d, ",a[i]);
printf("}");
return 0;
}
sum result is 12.
{1, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }
Press ENTER or type command to continue
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流