xiaohu168888 发表于 2016-1-7 22:13:33

比较两个数的大小

#include<stdio.h>
int *pointer_1;
int *pointer_2;
int swap(int *pointer_1,int *pointer_2);
void main()
{
      
      int a,b;
      scanf("%d %d",&a,&b);
      pointer_1 = &a;
      pointer_2 = &b;
      
      if(a < b)
      {
            swap(pointer_1,pointer_2);//这里为什么不能写成swap(int *pointer_1,int *pointer_2),写成这样就会报错,求各个大大帮忙解释下。
            
      }
      printf("%d > %d\n",a,b);

}

int swap(int *pointer_1,int *pointer_2)
{
      int temp;
      temp = *pointer_1;
      *pointer_1 = *pointer_2;
      *pointer_2 = temp;
}

麦田管理中心 发表于 2016-1-7 23:20:31

pointer_1
pointer_2
是已经定义过了的,注意这里是函数调用,调用的时候没有swap(int *pointer_1,int *pointer_2)这种格式

xiaohu168888 发表于 2016-1-8 10:33:18

麦田管理中心 发表于 2016-1-7 23:20
pointer_1
pointer_2
是已经定义过了的,注意这里是函数调用,调用的时候没有swap(int *pointer_1,int *p ...

哦,原来是这样啊,谢谢啦。

jchao288195 发表于 2016-1-8 13:11:53

swap(pointer_1,pointer_2)
你定义的是函数指针,引用的时候传入的必须是地址;
写成这样swap(*pointer_1,*pointer_2)传入的就不是地址了而是传值了,* pointer是取它存放着的地址中的值了

xiaohu168888 发表于 2016-1-8 14:05:25

jchao288195 发表于 2016-1-8 13:11
swap(pointer_1,pointer_2)
你定义的是函数指针,引用的时候传入的必须是地址;
写成这样swap(*pointer ...

谢谢,你的回答,让我更加了解了一点。

lingtingliushen 发表于 2016-1-8 21:55:16

学习
页: [1]
查看完整版本: 比较两个数的大小