C語言之函數(shù)返回值與參數(shù)傳遞案例教程
C語言函數(shù)返回值與參數(shù)傳遞
一:參數(shù)傳遞
C語言的函數(shù)中必不可少的就是參數(shù)傳遞,可以采用傳值和傳指針兩種方式。
1.傳值的形式:只是將參數(shù)值的拷貝傳給函數(shù),并非參數(shù)本體如:
int test(int x,int y)
{
x=2*y;
return x;
}
int main(void)
{
int a=0,b=5;
printf("%d,%d\n\r",test(a,b),a);
return 0;
}
運行結果為:
10,0
即傳值方式只可以將實參傳遞給函數(shù),不可以改變實參本身。
2.傳指針形式:直接傳給函數(shù)的是變量的地址。
如:
int a(int b,int *c)
{
int i=0;
for(i=0;i<4;i++)
c[i]=b*i;
return 0;
}
int main(void)
{
int b=2,c[4],i;
a(b,c);
for(i=0;i<4;i++)
printf("Data is -> %d\n\r",c[i]);
return 0;
}
運行結果為:
Data is -> 0
Data is -> 2
Data is -> 4
Data is -> 6
由于被調(diào)函數(shù)在參數(shù)指針的作用域之內(nèi),此時可以直接改變變量的本體。
二:返回值
函數(shù)除了參數(shù)傳遞還有返回值,既可以返回變量值也可以返回地址。
1.返回變量
如:
int a(int b)
{
int i=5;
return 5*b;
}
int main(void)
{
int b=2;
printf("Data is -> %d\n\r",a(b));
return 0;
}
運行結果
Data is -> 10
2.返回地址
int *test(int b)
{
int i=0,buf[4];
for(i=0;i<4;i++)
buf[i]=b*i;
return buf;
}
int main(void)
{
int b=2;
int *p;
int i=0;
p=test(b);
for(i=0;i<4;i++)
printf("%d ,%d \n\r",p[i],test(b));
return 0;
}
運行結果
0 ,1084896256
2 ,1084896256
4 ,1084896256
6 ,1084896256
另外不能返回局部變量地址。
int *buf()
{
int dad;
double buf[3][2];
dad=sizeof(buf);
return &dad;//error:由于dad是局部變量,函數(shù)結束后釋放。
}
到此這篇關于C語言之函數(shù)返回值與參數(shù)傳遞案例教程的文章就介紹到這了,更多相關C語言函數(shù)返回值與參數(shù)傳遞內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

