网站建设资讯

NEWS

网站建设资讯

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语言指针函数的调用改变的是什么
路径分享:http://cdweb.net/article/dopsjop.html