• 欢迎光临~

基础概念(7):函数间怎么传递数据

开发技术 开发技术 2022-01-25 122次浏览

总结卡片:
基础概念(7):函数间怎么传递数据
c的函数间通过数值来传递,不管是基本类型的变量值,还是数组的地址、指针的值,传递的都只是一个数值,这个数值拷贝到被调用函数的临时变量中。
被调用函数的临时变量得到这个值后,想怎么修改都行,但都不会影响到调用函数里面的值。

#include <stdio.h>
int power(int a, int b) {
	int r;
	for(r=1;b>0;b--) r=r*a;
	return r;
}
int main() {
	int a=2,b=10;
	printf("power(2,10)==%dn", power(a,b));
	return 0;
}

比如上面代码,power函数中修改了变量b,并不会影响到main函数中的变量b。
c函数没有“引用”的概念,如果想修改调用函数里面的数据,可以用数组或指针等做到,比如用数组:

#include <stdio.h>
#define MAX_LEN 1024
int line(char c[], int len) {
	int rlen=0;
	char ch;
	while(rlen<len-1 && (ch=getchar()) != 'n') {
		c[rlen++] = ch;
	}
	c[rlen] = '';
	return rlen;
}
int main() {
	char c[MAX_LEN];
	int len = line(c,MAX_LEN);
	printf("len==%dn",len);
	printf("%sn", c);
	return 0;
}

main调用line时,把字符数组c传递过去,实际是把数组的地址传递过去,line函数拿到数组c,就能修改到main函数中的数组的内容,因为line跟main的数组地址,指向同一个内存块。

程序员灯塔
转载请注明原文链接:基础概念(7):函数间怎么传递数据
喜欢 (0)
违法和不良信息举报电话:022-22558618 举报邮箱:dljd@tidljd.com