鱼C论坛

 找回密码
 立即注册
查看: 4716|回复: 7

关于指针函数的大小输出

[复制链接]
北北 该用户已被删除
发表于 2012-9-10 23:58:28 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-11 02:23:49 | 显示全部楼层

回帖奖励 +2 鱼币

  1. #include <stdio.h>

  2. void swap( int *p1, int *p2 );

  3. void main()
  4. {
  5.         int a, b;
  6.         int *pointer_1, *pointer_2;
  7.         scanf( "%d %d", &a, &b );
  8.         pointer_1 = &a;
  9.         pointer_2 = &b;
  10.         if( a < b )
  11.         {
  12.                 swap( pointer_1, pointer_2 );
  13.         }
  14.         printf( "max = %d\nmin = %d\n", *pointer_1, *pointer_2 );
  15. }

  16. /*void swap( int *p1, int *p2 )                因为你这个函数交换的是他们的地址 并 没有交换他们的值所以要改下
  17. {
  18.         int *p;
  19.         p = p1;
  20.         p1 = p2;
  21.         p2 = p;
  22. }*/

  23. void swap(int *p1, int *p2)
  24. {
  25.         int temp;
  26.         temp=*p1;
  27.         *p1=*p2;
  28.         *p2=temp;
  29. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
北北 该用户已被删除
 楼主| 发表于 2012-9-11 14:57:40 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-11 15:51:46 | 显示全部楼层
不可能通过 调用函数来改变实参指针变量的值,但是可以改变实参指针变量所指变量的值。
void swap( int *p1, int *p2 )
{
         int *p;
         p = p1;
         p1 = p2;
         p2 = p;
}
所以这个函数你是企图改变指针变量的值,所以是不对的。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-9-11 16:27:04 | 显示全部楼层
楼上正解  
小甲鱼最新课程 -> https://ilovefishc.com
北北 该用户已被删除
 楼主| 发表于 2012-9-25 15:03:10 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
北北 该用户已被删除
 楼主| 发表于 2012-9-25 15:05:22 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
北北 该用户已被删除
 楼主| 发表于 2012-9-25 15:06:26 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-15 02:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表