纯代码
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
~
记录留存