指针的用法

来源:互联网 发布:全球化 知乎 编辑:程序博客网 时间:2024/06/08 02:51
#include<stdio.h>//两种作用效果一样的传值方式
void swap(int *a,int *b)/*这样传,传的是地址,地址的指向没变,只是改变了指向的值。(第一种传值)*/
{
int t;
t=*a;
*a=*b;
*b=t;
printf("a。b是地址:");//a b是地址
printf("%d %d\n",a,b);
}
void swp(int &a,int &b)/*这样传,a b传的是数值,地址的指向没变,也是改变了指向的值。(第二种传值)*/
{
int t;
t=a;
a=b;
b=t;
printf("%d   %d\n",a,b);//a b 是值
printf("%d   %d\n",&a,&b);
}


int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("a,b的地址为:");
printf("&a=%d     &b=%d\n",&a,&b);
printf("-------------------------------\n");
swap(&a,&b);//a b 的地址调用
printf("%d  %d\n",a,b);//看看a,b是否变化
printf("%d     %d\n",&a,&b);//地址是否变化
printf("-----------------------------------\n");
scanf("%d%d",&a,&b);
printf("a b的地址为:");
printf("&a=%d     &b=%d\n",&a,&b);
printf("-----------------------------------------\n");
swp(a,b);//看看a b的地址
printf("---------------------\n");
printf("%d  %d\n",a,b);
printf("%d     %d\n",&a,&b);
return 0;

}

两种传值,虽然作用一样,但是原理还是不太一样的,

0 0