传值:改变的是形参的值,实参的值并未改变
#include <stdio.h>
void swap(int m,int n){
int t;
t=m;
m=n;
n=t;
}
int main(void)
{
int a=1,b=2;
swap(a,b);
printf("%d %d",a,b); //1,2
}
传址(形参变化影响实参)
#include <stdio.h>
void swap(int *m,int *n){
int t;
t=*m;
*m=*n;
*n=t;
}
int main(void)
{
int a=1,b=2,*p1,*p2;
p1=&a;
p2=&b;
swap(p1,p2);
printf("%d %d",a,b); //2,1
}
传址(形参变化不影响实参)
#include <stdio.h>
void swap(int *m,int *n){
int *t;
t=m;
m=n;
n=t;
}
int main(void)
{
int a=1,b=2,*p1,*p2;
p1=&a;
p2=&b;
swap(p1,p2);
printf("%d %d",a,b); //1,2
}
传址(数组名作参数)
#include <stdio.h>
#include <string.h>
void test(char b[]){ //char *b
strcpy(b,"world"); //字符串数组的二次赋值用strcpy
}
int main(void)
{
char a[10]="hello";
test(a);
printf("%s",a); //world
}
标签:p2,传址,p1,int,void,swap,include,传值
From: https://www.cnblogs.com/yuanyu610/p/17076006.html