函数传参数值改变笔记

纯代码

First

#include<stdio.h>
void fun(char c, int d)
{
	c = c + 1; d = d + 1;
	printf("%c,%c", c, d);
}
int main()
{
	char b = 'a', a = 'A';
	fun(b, a);   //char b本身值不变
	printf("%c,%c\n", b, a);
	system("pause");
	return 0;
}

Second

#include<stdio.h>
void fun(char *c, int d)
{
	*c = *c + 1; d = d + 1;
	printf("%c,%c", *c, d);
}
int main()
{
	char b = 'a', a = 'A';
	fun(&b, a);    //char b值被改变(传递的是地址)
	printf("%c,%c\n", b, a);


	system("pause");
	return 0;
}

Third

#include<stdio.h>
void fun(char c, int *d)
{
	c = c + 1; *d = *d + 1;
	printf("%c,%c", c, *d);
}
int main()
{
	char b = 'a', a = 'A';
	fun(b, &a);  //a值本身被改变,传递的是地址
	printf("%c,%c\n", b, a);
	system("pause");
	return 0;
}

Fourth

#include<stdio.h>
void fun(double *p)  //传递的不是地址不会改变原来本身的值
{
	p = p + 3;
	printf("%f\t%p\n",*p,p);  //输出结果是44  地址00CFF72C
}
int main()
{
	double a[5] = {11,22,33,44,55};
	double *r = a;
	fun(r);
	printf("%f\t%p\n",*r,r);   //输出结果是11  地址是00CFF714
	getch();
	return 0;
}

End

~
记录留存


发布了34 篇原创文章 · 获赞 0 · 访问量 514

猜你喜欢

转载自blog.csdn.net/weixin_44228006/article/details/104095220