
正文
c语言函数参数为变量,c语言改变函数参数的值
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
【C语言】用普通变量作函数参数,其实是一种按值调用,请举例说明
#includestdio.h
int add_two_num(int num1,int mum2);
int main(void)
{
int a=1,b=2,c;
c=add_two_num(a,b);
printf("a=%d,b=%d,c=%d\n",a,b,c);
return 0;
}
int add_two_num(int num1,int num2)
{
num1++;
num2--;
return num1+num2;
}
参数a,b就是值传递,调用函数时,将a,b变量的拷贝赋值给num1,num2;函数中对num1++,num2--运算后其值分别为2,1,但a,b本身并不改变。
相关问答
Q1: C语言,函数参数是变量,函数内使用指针。
我执行了你的程序,结果是:
show1函数执行的时候,number放在地址0012FF2B里,但是执行完后这个地址系统就回收了,不再保存number。
到show2函数执行的时候,恰好系统也给number1分配了这个地址0012FF2B,这个时候地址0012FF2B放的是number1.
所以这里没有存在冲突的地方。
Q2: C语言system()函数里的参数可以是变量吗?
应该使用sprintf先格式化到一个字符串数组中,然后传入system。比如:#includestdio.hint main(){int seconds;
scanf("%d",seconds);
char chars[100];
sprintf(chars,"shutdown -s -t %d",seconds);
system(chars);}
Q3: C语言中指针变量作为函数参数和一般变量作为函数参数的区别
一般变量作为形参,是不能改变实参值的哦,要返回数据就用return;
指针指向真实的地址,不重新分配内存,所以调用函数后,如果函数里改变了指针指向的值,那这个数就真的变了。
调用就是用函数名,还要传送相应的调用参数。







