注册 登录
编程论坛 C++教室

老头

茹鹏锟 发布于 2015-01-04 17:14, 691 次点击
无奈

[此贴子已经被作者于2019-6-19 11:43编辑过]

7 回复
#2
tiucdccsgz2015-01-04 21:55
程序代码:
#include<stdio.h>

 int main()

 {
     void swap(int *pointer_1,int *pointer_2);/*如果要调用函数,即调用函数,必须在主函数中对函数进行声明,应该注意*/
     int a,b;
     int *pointer_1, *pointer_2;
     printf("please enter two nums\n");
     scanf("%d%d",&a,&b);
     pointer_1=&a;
     pointer_2=&b;
     if(a<b)
     {
         swap(pointer_1,pointer_2);
     }
       printf("max=%d,min=%d\n",*pointer_1,*pointer_2);
     return 0;

 }

 void swap(int *p1,int *p2)

 {
     int p;
      p=*p1;            /*****************在这修改了********************************/
      *p1=*p2;
      *p2=p;

 }
#3
tiucdccsgz2015-01-04 21:55
程序代码:
#include<stdio.h>

 int main()

 {
     void swap(int *pointer_1,int *pointer_2);/*如果要调用函数,即调用函数,必须在主函数中对函数进行声明,应该注意*/
     int a,b;
     int *pointer_1, *pointer_2;
     printf("please enter two nums\n");
     scanf("%d%d",&a,&b);
     pointer_1=&a;
     pointer_2=&b;
     if(a<b)
     {
         swap(pointer_1,pointer_2);
     }
       printf("max=%d,min=%d\n",*pointer_1,*pointer_2);
     return 0;

 }

 void swap(int *p1,int *p2)

 {
     int p;
      p=*p1;            /*****************在这修改了********************************/
      *p1=*p2;
      *p2=p;

 }
#4
wp2319572015-01-04 22:14
简单讲   值传递就是通过寄存器进行数据交换
址传递就是传地址  就是大多数语言中的指针
两者各有千秋
#5
peach54602015-01-05 11:03
值传递和引用传递

假设,有两个人A和B
A要B拿10*10的正方形木板做一套七巧板出来

值传递:
A把木板给B
B对着A给的木板,去找了一块新的和A给的一模一样的木板(值复制)
然后拿这块木板做了一套七巧板
所以A的木板还是那块木板,并没有被切割掉

引用传递:
A把木板放在储物柜里,然后将储物柜密码记在纸上给了B
B用自己的纸将密码复制了一份(指针值复制)
B通过自己记录的储物柜密码,去储物柜找到这块板子(查找引用对象)
然后就拿这块板子做了一套七巧板...
于是A再到储物柜去取的时候,A的木板没了,变成了一套七巧板...

总结:
拍脑袋想出来的比喻,能理解就理解
理解不了也不用私信我...我的文学水平就这样了...问我我也不可能再给出更形象的比喻...
#6
茹鹏锟2015-01-23 13:57
回复 4楼 wp231957
谢谢
#7
茹鹏锟2015-01-23 13:59
回复 5楼 peach5460
太细致了,前一段时间忙期末考试,没有看论坛,哈哈,谢谢喽
#8
茹鹏锟2015-01-23 14:02
回复 2楼 tiucdccsgz
谢谢
1