c语言指针和函数调整 c语言指针函数的调用改变的是什么

c语言用指针和自定义函数实现数组元素的调换

#include stdio.h

创新互联主要从事网站制作、成都做网站、网页设计、企业做网站、公司建网站等业务。立足成都服务宁夏,10年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

#define N 10

void Swap ( int *a, int *b, int n);

int main(void)

{

int *a, *b;

int num1[N], num2[N];

for (a = num1; a num1 + N; a++)

scanf ("%d", a);

for (b = num2; b num2 + N; b++)

scanf ("%d", b);

a = num1;//重新指向首地址

b = num2;//重新指向首地址

Swap (a, b, N);

printf ("*********交换后**********\n");

for (a = num1; a num1 + N; a++)

printf ("%3d", *a);

printf ("\n");

for (b = num2; b num2 + N; b++)

printf ("%3d", *b);

return 0;

}

void Swap (int *a, int *b, int n)

{

int temp;

int i;

for (i = 0; i n; i++)

{

temp = *(a + i);

*(a + i) = *(b + i);

*(b + i) = temp;

}

}

C语言用指针和函数调换两个整数 帮忙修改

#includestdio.h

void mswap(int *p1, int* p2);//在前边声明一下函数

int main()

{

int a, b, *pa, *pb, swap(int p1, int p2);

scanf("%d%d", a, b);

pa = a;  /*指针pa指向整数a*/

pb = b;  /*指针pb指向整数b*/

printf("a=%d,b=%d\n", a, b);

mswap(pa, pb);  /*调用函数swap,实参为指针*/

printf("a=%d,b=%d\n", a, b);

return 0;//int main()

}

void mswap(int *p1, int* p2)

{

int  t;

t = *p1; *p1 = *p2; *p2 = t;

}

我用的vs2013,貌似系统自带swap,会报错。所以把函数名改成了mswap

有关于c语言中函数调用和指针

函数参数用值传递时,函数的形参只不过是实参的拷贝而已。也就是说,1中调用swap函数时,内存中实际上a,b,x,y四个变量都存在,x是a的拷贝,y是b的拷贝,对x,y的值进行交换,a,b的值并未交换。

而2中用了指针传递,swap中的a,b,实际上是指向了main中的a,b。这个swap中交换的是a,b指向的变量的值,也就是交换了main中的a,b的值。

网站标题:c语言指针和函数调整 c语言指针函数的调用改变的是什么
网站链接:https://www.cdcxhl.com/article8/dopsjop.html

成都网站建设公司_创新互联,为您提供小程序开发静态网站品牌网站制作手机网站建设动态网站软件开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

绵阳服务器托管