十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
swap ( ) ; //调用函数去交换了全局变量的值。
发展壮大离不开广大客户长期以来的信赖与支持,我们将始终秉承“诚信为本、服务至上”的服务理念,坚持“二合一”的优良服务模式,真诚服务每家企业,认真做好每个细节,不断完善自我,成就企业,实现共赢。行业涉及楼梯护栏等,在重庆网站建设公司、成都全网营销推广、WAP手机网站、VI设计、软件开发等项目上具有丰富的设计经验。
你这个采用的是值交换,在调用的函数里换完后,函数生命期结束死掉,而main函数里的值还是没有变化。
因此实际交换的是a,b而不是x,y。您要做的只需是定义函数的时候声明参数类型为指针:void swap(int *a,int *b)调用的时候为swap(&x,&y);&是取地址的符号。这样的话a就是x,b就是y了。
第一题是因为调 用函数实现的是单值返回,所以不会改变原来函数中的值。第二题要注意一点,传值和传指针是有区别的,传值不会改变原来的值,传指针有可能改变原来的值,但是也要注意他的单值传递这个问题。
这就是值传递的问题。你调用这个函数的时候,swap(a,b); 只是把a,b的值传递给了x,y;然后在函数中对于x,y进行了对调。注意,是x,y与a,b本身没有关系的。所以这里要用的话,必须用地址传递。
指针本身也有地址,swap函数交换的是指针本身的地址,并没有改变指针所指的变量,所以p依然指向x、q指向y,所以值不变。
其次,用unsigned是为了防止char的符号特性。某些机器上:char变量如果是被一个负的数给赋值了,就会自动加一个绝对值,变成正的。所以为了防止可移植性错误,就最好声明这个变量是unsigned的(没有正负符号)。
函数参数是char *,表示函数的参数是一个指针。
C语言中,函数的定义格式:函数返回值类型 函数名 (形参列表)。
void swap(int *,int *);和void swap(int *a,int *b)中viod都是swap函数的返回值类型,viod表示返(1)回值类型是空(即不返回任何值)或者(2)返回值是任意的类型。
把函数的返回值的类型设置为char类型的指针就可以了。
1、swap函数一般是一个程序员自定义函数,是实现两个变量数值的交换。比如:int a = 2;int b =3;swap(a,b); //一般用到变量数值交换,交换后a=3 b = 2;通过使用临时变量实现交换。
2、swap函数一般是一个程序员自定义函数。通常是实现两个变量数值的交换,用法比较广泛。可使用临时变量实现交换;可通过临时指针变量实现交换;可借助指针加入临时变量来实现交换。
3、swap函数一般是一个程序员自定义函数。通常是实现两个变量数值的交换。比如 int a = 2;int b =3;swap(a,b); //一般用到变量数值交换,交换后a=3 b = 2;实现的方法多种多样。
4、swap函数一般是一个程序员自定义函数。通常是实现两个变量数值的交换。swap1(x,y);printf(swap1: x:%d,y:%d\n,x,y);//形参传值,不能交换,实际传过去是拷贝的一份,没改变主函数中x,y。