自定义函数的传值与传址
#include "stdafx.h"
//传值特点:变量从调用空间,传到被调用空间后,俩者再也没有关系
void addInt1(int x) //参数是数值 返回类型为void 并且是开辟新空间进行操作,
{ //调用后空间被销毁,main函数中的数据不会受其影响
x += 1;
}
//传址
void addInt2(int* p) //参数是地址 虽然返回值也是void 但是是对源数据地址的空间
{ //进行操作 直接对数据发送变化
(*p)++;
}
void swap(int* a, int* b)
{
*a = *a^*b;
*b = *a^*b;
*a = *a^*b;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a = 10;
addInt1(a); //调用传值函数
printf("a = %d\n", a);
addInt2(&a); //调用传址函数
printf("a = %d\n", a);
printf("==================================\n");
int b[10] = { 32, 66, 43, 2, 989, 343, 77, 49, 51, 333 };
for (int i = 0; i < 10 - 1; i++)
{
for (int j = i + 1; j < 10; j++)
{
if (b[i] > b[j])
{
swap(&b[i], &b[j]); //调用传址函数
}
}
}
for (int i = 0; i < 10; i++)
{
printf("%d\n", b[i]);
}
return 0;
}